我正在编写一个需要连接到 Web 服务的应用程序。在某些情况下,我需要切换端点地址。
System.ServiceModel.Description.ServiceEndpoint
我认为这就像在地址需要更改时更改 , 一样简单。但是,当我这样做时遇到了一个异常,因为一个地址需要 SSL,而另一个地址不需要。
如何正确更新 Web 服务端点地址?
注意:这是一个 C#、.Net 3.5 项目。
我正在编写一个需要连接到 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
我们方法的参数所定义的那样。