Tôi đã tạo một dịch vụ WCF đang hoạt động. Bây giờ tôi muốn thêm một số bảo mật cho nó để lọc địa chỉ IP. Tôi đã làm theo các ví dụ mà microsoft xuất bản trong các mẫu để thử và thêm một IDispatchMessageInspector sẽ nâng cao một cuộc gọi AfterReceiveRequest và sau đó ném một lỗi nếu địa chỉ ip không phải là từ danh sách cho phép.Tại sao dịch vụ WCF của tôi cung cấp thông báo 'không có sự ràng buộc với None MessageVersion'?
Sau khi xem mã; họ đã cấu hình nó bằng cách sử dụng 'wsHttpBinding', tuy nhiên tôi muốn sử dụng 'webHttpBinding' hoặc 'basicHttpBinding'. Nhưng khi tôi đặt nó lên tôi nhận được lỗi:
The endpoint at 'http://upload/api/Api.svc/soap' does not have a Binding with the None MessageVersion. 'System.ServiceModel.Description.WebHttpBehavior' is only intended for use with WebHttpBinding or similar bindings.
cấu hình của tôi là:
<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true">
</serviceHostingEnvironment>
<!--Set up the service-->
<services>
<service behaviorConfiguration="SOAPRESTDemoBehavior" name="HmlApi">
<endpoint address="rest" binding="webHttpBinding" contract="VLSCore2.Interfaces.IHmlApi" behaviorConfiguration="SOAPRESTDemoEndpointBehavior" />
<endpoint address="soap" binding="basicHttpBinding" contract="VLSCore2.Interfaces.IHmlApi" behaviorConfiguration="SOAPRESTDemoEndpointBehavior" />
</service>
</services>
<!--Define the behaviours-->
<behaviors>
<serviceBehaviors>
<behavior name="SOAPRESTDemoBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
<!---Endpoint -->
<endpointBehaviors>
<behavior name="SOAPRESTDemoEndpointBehavior">
<ipFilter/>
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
<extensions>
<behaviorExtensions>
<add name="ipFilter" type="VLSCore2.Api.IpFilterBehaviourExtensionElement, VLSCore2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</behaviorExtensions>
</extensions>
</system.serviceModel>
Vì vậy, những gì im tự hỏi là làm thế nào tôi có thể thiết lập thanh tra thông điệp của tôi mà không sử dụng WebHttpBinding. Điều này thậm chí có thể?
Tôi muốn sử dụng SOAP 'basicHttpBinding' không wsHttpBinding (và tất cả các WS *) các chi phí liên quan đến ....
Cảm ơn rất nhiều này là chỗ trên. Công bằng để nói rằng tôi nghĩ rằng điều quan trọng là phải thiết lập tất cả các điểm cuối chính xác cho một dịch vụ ngay bây giờ! – Exitos
Người đàn ông tôi đã đấu tranh cho một vài giờ đã và tôi đến đây để nhận thấy rằng tôi đã không thay đổi ràng buộc :))) Tôi đã sử dụng cơ bản cho http yêu cầu từ một ứng dụng di động ... thumb up + – dpaul1994