2011-03-18 63 views
0

我正在开发一个小型项目,即C#Web服务,我这样做但现在我想使用协议HTTPS运行Web服务,为此我已经在我的系统中安装了Web身份验证证书,并且我的IIS 5.1服务器在HTTPS协议下运行(我已经在该目录中进行了配置)如何使用Https协议来使用WebService(由C#创建)

但是现在我想使用HTTPS协议调用Web服务,我需要修改该Web服务的WSDL文件,但我不知道该怎么做...

现在我的服务网址是这样的.... http://localhost:2335/SWebService.asmx

这里我想用https代替http

+0

可能是最简单的方法...删除Web服务绑定,并使用“https”地址作为源重新添加它。 – 2011-03-18 16:17:59

回答

1

当你实例化你的web服务代理类时,你可以使用Url参数覆盖web服务的URL。

如果你获得了你想要的URL,那么你可以在这里设置它。

建议从配置文件中获取所需的URL并设置一个工厂类来提供Web服务代理。

MyWebService clientProxy = new MyWebService(); 
clientProxy.Url = "https://localhost:2335/SWebService.asmx"; 

// or better still 
// clientProxy.Url = ConfigurationSettings.AppSettings["webServiceUrl"]; 

这种方法然后去住,因为你会希望有一个实时Web服务端点有用。

增加工厂类的位置:

public static class WebServiceFactory 
{ 
    public static MyWebService GetMyWebService() 
    { 
     MyWebService clientProxy = new MyWebService(); 
     clientProxy.Url = ConfigurationSettings.AppSettings["webServiceUrl"]; 
     return clientProxy; 
    } 
} 

意味着你就可以只让你这样的客户端代理:

MyWebService clientProxy = WebServiceFactory.GetMyWebService(); 
string exampleText = clientProxy.GetExampleText(); 

这里是web.config文件的例子:

<configuration> 
<appSettings> 
     <add key="webServiceUrl" value="https://localhost:2335/SWebService.asmx" /> 
</appSettings> 
+0

谢谢Swaff,但仍然有一个问题,我不知道我需要放置编码,bcoz这是我的第一个程序,你可以帮我请 – 2011-03-21 05:48:19

+0

@Navaneeth一个Krishnan我会将WebServiceFactory类添加到你有相同的项目添加了对您的Web服务的引用。如上面更新的示例所示,将您的Web服务URL添加到配置文件中。最后,只要调用WebServiceFactory来获取客户端代理,然后调用上面显示的G​​etExampleText()方法所示的必需方法,就可以访问Web服务的方法。祝你好运。 – Swaff 2011-03-21 10:25:40