如何将SoapHttpClientProtocol转换为HTTPS

时间:2013-03-21 13:04:48

标签: c# web-services https

我可以自动转换从WSDL创建的SoapHttpClientProtocol类,而不是使用HTTPS协议吗? (以及如果,如何?)

只需将网络服务的网址访问权限从http://更改为https://,即可获得例外情况:

  

由于意外的数据包格式而导致握手失败

我的问题是,该课程非常庞大(想想10k SLOC),我不确定如何在这里更改协议。

1 个答案:

答案 0 :(得分:1)

从搜索新内容中我可以看出,您应该可以通过添加行

来实现
this.Url = "https://example.com:443/servlet_path";
this.Credentials = System.Net.CredentialCache.DefaultCredentials;

到派生的SoapHttpClientProtocol类的构造函数和

[System.Web.Services.Protocols.SoapDocumentMethodAttribute(
  "http://example.com/servlet_path",
  RequestNamespace="http://example.com/",
  ResponseNamespace="http://example.com/",
  Use=System.Web.Services.Description.SoapBindingUse.Literal,
  ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]

到你的功能定义。在一个页面中,他们提到如果目标计算机没有来自执行机器接受的CA的证书,则可能需要覆盖默认证书验证程序。