微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐