0

我正在编写一个需要连接到 Web 服务的应用程序。在某些情况下,我需要切换端点地址。

System.ServiceModel.Description.ServiceEndpoint我认为这就像在地址需要更改时更改 , 一样简单。但是,当我这样做时遇到了一个异常,因为一个地址需要 SSL,而另一个地址不需要。

如何正确更新 Web 服务端点地址?

注意:这是一个 C#、.Net 3.5 项目。

4

1 回答 1

0

好的,我找到了解决方案。当 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我们方法的参数所定义的那样。

于 2013-09-25T12:35:21.410 回答