OVM webservice 在winform中引用
开始按照文档中的 https://.../OVSWS/VirtualMachineService.wsdl 引入服务,代理类生成成功了, 但是自动生成的配置没有生成endpoint,手工配置上去,结果还是报错。 后面随便试试,发现使用 https://.../OVSWS/VirtualMachineServiceSoapHttpPort?WSDL 生成代理类和配置都OK了 但是还是验证不成功,后面反复调整参数,修改transport的 clientCredentialType为Basic级OK了。 <system.serviceModel> <bindings> <basicHttpBinding> <binding name="VirtualMachineServiceSoapHttp" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"> <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> <security mode="Transport"> <transport clientCredentialType="Basic" proxyCredentialType="None" realm="webservices" /> <message clientCredentialType="UserName" algorithmSuite="Default" /> </security> </binding> <binding name="VirtualMachineServiceSoapHttp1" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true"> <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> <security mode="None"> <transport clientCredentialType="None" proxyCredentialType="None" realm="webservices" /> <message clientCredentialType="UserName" algorithmSuite="Default" /> </security> </binding> </basicHttpBinding> </bindings> <client> <endpoint address="https://124.225.135.128:4443/OVSWS/VirtualMachineServiceSoapHttpPort" binding="basicHttpBinding" bindingConfiguration="VirtualMachineServiceSoapHttp" contract="OVM.VirtualMachineService" name="VirtualMachineServiceSoapHttpPort" /> </client> </system.serviceModel> 另外,为了https可以验证成功,需增加下面代码 ?? public bool CheckValidationResult(object sender,X509Certificate certificate,X509Chain chain,System.Net.Security.SslPolicyErrors errors) ??????? {?? // 总是接受 ? ??????????? return true; ??????? } ??? ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |