我試圖在http://www.onvif.org/onvif/ver20/ptz/wsdl/ptz.wsdl的ONVIF規範中實現C#WCF服務器。我已經生成使用嘗試實現ONVIF服務器的SOAP操作不匹配
SvcUtil.exe http://www.onvif.org/onvif/ver20/ptz/wsdl/ptz.wsdl http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl
產生Device
和PTZ
接口合同代碼。然後,我創建生成的接口的實現,公開,使用一個ServiceHost
這樣的:
serviceHost = new ServiceHost(typeof(OnvifImpl), baseUri);
serviceHost.AddServiceEndpoint(typeof(Device), new WSHttpBinding(), "device_service");
serviceHost.AddServiceEndpoint(typeof(PTZ), new WSHttpBinding(), "ptz");
當我在我的服務器指向ONVIF設備管理器2.2.250(https://sourceforge.net/projects/onvifdm/),我得到了我的服務器異常「的消息中指定的SOAP操作「'與HTTP SOAP操作」http://www.onvif.org/ver10/device/wsdl/GetScopes「不匹配。」 Wireshark顯示該請求沒有任何SOAP頭。但是,據我所知,客戶端是針對相同的WSDL文件開發的。
恐怕我對ONVIF,SOAP,Web服務和WCF都是全新的,所以我不知道問題出在哪裏。我看到了各種建議來修改客戶端,但這不是一種選擇。