【问题标题】:How can I dynamically set a .Net 3.5 Web Service that uses SSL?如何动态设置使用 SSL 的 .Net 3.5 Web 服务?
【发布时间】:2013-09-29 19:30:27
【问题描述】:

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

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

我如何正确更新网络服务端点地址?

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

【问题讨论】:

标签: c# .net webservice-client service-model


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2010-12-06
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 2011-02-23
    • 2012-08-26
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多