在asp.net app中连接到https:// webservice

时间:2010-04-12 10:39:59

标签: asp.net iis-7 web-services

我有一个与网络服务联系的ASP.NET网站。一切正常通过http连接,但当我尝试https://它无法连接。我似乎没有从网站上得到任何错误,并且webservice日志没有显示任何内容,这意味着没有任何内容连接到它。

我可以从soapclient.com这样的网站连接到我的https:// webservice并请求信息,因此webservice和端口正常工作。

为了通过普通的http:// .NET连接到https:// webservice,我应该做些什么特别的事情吗?我现在正在做的就是改变它连接到我的安全网址的URL。

我正在使用 ASP.NET 2,IIS7

提前致谢。

编辑:刚发现实际的错误消息:基础连接已关闭:无法建立SSL / TLS安全通道的信任关系 - 在我看来,我没有将自签名证书添加到已安装的证书中在服务器上...但我有......

2 个答案:

答案 0 :(得分:1)

您需要在运行ASP.NET网站的服务器的本地计算机存储中的受信任的根证书颁发机构下添加自签名证书。

将证书从Web服务服务器导出为.cer文件,并将其复制到运行ASP.NET网站的服务器。然后,在该服务器上:

  1. 双击.cer文件并安装证书
  2. 在向导中,选择商店作为“受信任的根证书颁发机构”下的“本地计算机”文件夹。
  3. 您可能必须重新启动IIS或服务器
  4. 在“在客户端计算机上安装自签名证书”下的本页底部有一些很好的说明:http://webhelp.esri.com/arcgisserver/9.3/dotNET/index.htm#setting_up_ssl.htm

答案 1 :(得分:0)

您的客户端遇到证书验证错误,因为您的服务器证书是自签名的。

在调用Web服务之前,请尝试在网站代码中包含以下行(C#)。这将告诉.NET忽略所有证书验证错误:

ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { return true; };

这显然不应该在生产环境中使用:)