无法在Visual Studio 2010 IDE中添加启用HTTPS的WCF服务作为服务引用

时间:2012-06-23 08:55:08

标签: c# wcf

通过Visual Studio 2010 IDE添加启用HTTPS的WCF服务作为服务引用时,发生以下异常

  

下载'https://abc.cloudapp.net/DataService.svc'时出错。   请求失败,HTTP状态为403:Forbidden。   元数据包含无法解析的引用:'https://abc.cloudapp.net/DataService.svc'。   客户端身份验证方案“匿名”禁止HTTP请求。   远程服务器返回错误:(403)禁止。   如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。

请建议我解决此问题。

5 个答案:

答案 0 :(得分:8)

另一种可能的解决方案是通过在凭据管理器中设置它来确保Visual Studio知道要使用哪个证书。

打开凭据管理器,在证书基础凭据下,单击“添加基于证书的凭据”。

输入服务参考的URL,然后从商店中选择证书。

答案 1 :(得分:3)

问题是元数据绑定。您必须允许https GET对元数据和服务本身使用相同的URL。

<serviceMetadata httpsGetEnabled="true" />

这将允许WCF通过HTTPS提供元数据。

答案 2 :(得分:0)

我之前遇到过这个问题,尝试添加http://abc.cloudapp.net/DataService.svc(没有https即可正确),一旦添加了服务,请将web.config文件中的更改从http更改为https。

答案 3 :(得分:0)

您可以在IE上访问基于https的URL并获取WSDL吗?如果您可以在IE中获得WSDL而没有任何问题,那么您的计算机中安装了证书,并且VS无论如何都无法使用客户端证书并返回此错误。如果您无法在计算机中获得WSDL,则需要先在计算机中安装客户端证书,然后重试。

如果要使用Visual Studio解决此问题,可以使用IE获取HTTPs WCF服务元数据wsdl页面并将WSDL保存在本地计算机上。之后打开VS2010,当您选择“添加ServiceReference”时,路由到您计算机上保存的WSDL元数据文件,这样就会生成安全WCF服务的代理类,您仍然可以使用它。

答案 4 :(得分:0)

我的问题通过将我的证书添加到浏览器来解决。

打开Internet Explorer - &gt;互联网选项 - &gt;转到内容 - &gt;点击证书 - &gt;将您的证书导入个人或受信任的发布者

然后尝试使用WCF服务,它会警告您一条消息,但单击“确定”,这将解决问题。

如果未解决,请在“个人或受信任的人”下的“服务器”中导入相同的证书