如何动态设置使用 SSL 的 .Net 3.5 Web 服务
本文关键字:Net SSL 服务 Web 何动态 动态 设置 | 更新日期: 2023-09-27 18:32:31
我正在编写一个需要连接到 Web 服务的应用程序。 在某些情况下,我需要切换端点地址。
我认为这就像更改System.ServiceModel.Description.ServiceEndpoint
一样简单,当地址需要更改时。 但是,当我这样做时,我得到一个异常,因为一个地址需要SSL,而另一个地址不需要。
如何正确更新 Web 服务终结点地址?
注意:这是一个 C#、.Net 3.5 项目。
好的,我找到了解决方案。 当 Visual Studio 为服务生成包装类时,[ServiceName]SoapClient
具有一个构造函数,该构造函数将绑定和终结点作为参数。 定义这些并将它们传递给构造函数。
这是一个伪示例。
void InitializeMyWebService(bool useSSLSite)
{
BasicHttpBinding b = useSSLSite ?
new BasicHttpBinding(BasicHttpSecurityMode.Transport) :
new BasicHttpBinding();
EndpointAddress e = useSSLSite ?
new EndpointAddress("https://www.example.com/svc/MyWebService.asmx") :
new EndpointAddress("http://intranet_server/svc/MyWebService.asmx");
myWebService = new MyWebServiceSoapClient(b, e);
}
}
MyWebService
现在将按照方法的 userSSLSite
参数定义工作。