Tôi đã tạo và thử nghiệm dịch vụ WCF, mọi thứ hoạt động tốt.Dịch vụ WCF trong môi trường https
Khi tôi triển khai để kiểm tra môi trường và cố gắng để mở https://my.site/myapp/EnrollmentService.svc Tôi đã có thông báo lỗi:
Không thể tìm thấy một địa chỉ cơ sở mà trận chương trình http cho endpoint với ràng buộc MetadataExchangeHttpBinding. Đề án địa chỉ cơ sở đã đăng ký là [https].
Internet chỉ cho tôi rằng tôi cần phải thêm một số tùy chọn cấu hình hơn:
http://www.codeproject.com/KB/WCF/7stepsWCF.aspx
Tôi đã thêm một số cài đặt để phục vụ tập tin web.config. Bây giờ nó trông giống như sau:
<system.serviceModel>
<services>
<service name="McActivationApp.EnrollmentService" behaviorConfiguration="McActivationApp.EnrollmentServicBehavior">
<endpoint
address="https://my.site/myapp/EnrollmentService.svc"
binding="basicHttpBinding"
bindingConfiguration="TransportSecurity"
contract="McActivationApp.IEnrollmentService"/>
<endpoint address="mex" binding="mexHttpBinding" contract="McActivationApp.IEnrollmentService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="McActivationApp.EnrollmentServicBehavior">
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
<bindings>
<basicHttpBinding>
<binding name="TransportSecurity">
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
Thực ra, tôi đã thêm phần "ràng buộc" và chỉ định nó cho điểm cuối của tôi.
Nhưng điều này không thay đổi gì cả ...
Hãy thông báo, tôi cần làm gì. Cảm ơn rất nhiều!
P.S. Có bất kỳ sự khác biệt nào trong dịch vụ WCF tiêu thụ từ tài nguyên https và http không?
Tôi đã hiểu chính xác rằng ở đây bạn: 1) thay đổi mex ràng buộc từ mexHttpBinding thành mexHttpsBinding và 2) thay thế httpGetEnabled bằng httpsGetEnabled. cũng có tác dụng. Cảm ơn – Budda
Vâng đó là những gì tôi đã làm + thay đổi hợp đồng cho mex và bị xóa địa chỉ của điểm đầu cuối vì nó không được sử dụng khi dịch vụ được lưu trữ trong IIS. –
Cảm ơn sự giúp đỡ của bạn! – Budda