2011-02-01 24 views
18

Tôi đã định cấu hình các dịch vụ WCF của mình để hoạt động với SSL nhưng nó hoạt động CHỈ nếu liên kết HTTP tồn tại trong Trang web IIS. Khi liên kết HTTP không tồn tại và chỉ tồn tại ràng buộc HTTPS tôi nhận được lỗi sau:Làm thế nào để cấu hình các dịch vụ WCF để làm việc thông qua HTTPS mà không cần HTTP ràng buộc?

The HttpGetEnabled property of ServiceMetadataBehavior is set to true and the HttpGetUrl property is a relative address, but there is no http base address. Either supply an http base address or set HttpGetUrl to an absolute address.

Làm cách nào để giải quyết vấn đề này?

Cảm ơn.

+0

Ông có thể giải thích điều này một cách chính xác có nghĩa là "nó chỉ hoạt động nếu HTTP ràng buộc tồn tại"? Cảm ơn ... Tôi đang đối mặt với cùng một vấn đề trong wcf của tôi .. WCf hoạt động tốt một máy chủ nhưng không phải trên khác .. :( – Lamps

Trả lời

44

Sửa đổi cấu hình của bạn theo cách này:

<behaviors> 
    <serviceBehaviors> 
    <behavior> <!-- behavior can have name (must have name in WCF 3.x) --> 
     <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
+1

Tôi đang đối mặt với cùng một vấn đề .. Nhưng nó chỉ xảy ra trong vài máy chủ .. Dịch vụ lưu trữ một máy chủ đang hoạt động tốt và máy chủ khác đang ném lỗi được đề cập trong câu hỏi. ? Cảm ơn. – Lamps

4

bạn cần phải sử dụng mexHTTPSBinding unstead của mexHTTPBinding

<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> 
+0

Đây không phải là nguyên nhân của vấn đề của OP, nhưng là đúng nếu bạn xác định các điểm cuối siêu dữ liệu vì nó cần phải có sẵn trên 'https' – Darbio

Các vấn đề liên quan