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


你可能感兴趣的:(webservice,object,Security,basic,WinForm,binding)