OVM webservice 在winform中引用

来源:互联网 发布:淘宝联盟pc端推广文案 编辑:程序博客网 时间:2024/05/29 08:03

开始按照文档中的

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);


原创粉丝点击