通过Visual Studio 2010 IDE添加启用HTTPS的WCF服务作为服务引用时,发生以下异常
下载'https://abc.cloudapp.net/DataService.svc'时出错。 请求失败,HTTP状态为403:Forbidden。 元数据包含无法解析的引用:'https://abc.cloudapp.net/DataService.svc'。 客户端身份验证方案“匿名”禁止HTTP请求。 远程服务器返回错误:(403)禁止。 如果在当前解决方案中定义了服务,请尝试构建解决方案并再次添加服务引用。
请建议我解决此问题。
答案 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服务,它会警告您一条消息,但单击“确定”,这将解决问题。
如果未解决,请在“个人或受信任的人”下的“服务器”中导入相同的证书