在VS2012中添加Web服务引用时出错

时间:2013-10-17 17:34:22

标签: c# .net visual-studio-2010 web-services visual-studio-2012

我正在尝试为VS2012中的新项目添加对Web服务的引用。我一直收到以下错误:

  

下载时出错   'ServiceAddress / ConfigurationMgmt.wsdl / _vti_bin / ListData.svc / $元数据'。   请求失败,HTTP状态为400:错误请求。元数据   包含无法解析的引用:   'ServiceAddress / ConfigurationMgmt.wsdl'。 HTTP请求是   未经授权的客户端身份验证方案'匿名'。该   从服务器收到的身份验证标头是'基本的   境界= “CASM””。远程服务器返回错误:(401)   未经授权。如果在当前解决方案中定义了服务,请尝试   构建解决方案并再次添加服务引用。

更令人困惑的部分是我能够使用VS2010添加和使用对同一Web服务的引用。如果我在VS2012中打开VS2010项目并尝试更新服务引用,我会得到同样的错误。

我尝试在VS2012中添加服务引用到新项目,在管理模式下启动VS2012并重新启动我的电脑。

我还尝试在VS2012项目中添加对我们内部网上可用的其他服务的引用,它们似乎工作正常。

我在这里缺少一些基本的东西吗?我还能尝试找出这个问题背后的原因吗?

2 个答案:

答案 0 :(得分:1)

更改安全标记

中的 web.config 文件
<security mode="TransportCredentialOnly">
    <transport clientCredentialType="Anonymous"/>
    <message clientCredentialType="UserName" algorithmSuite="Default"/>
</security>

我认为这会让你感到高兴。 如果它不起作用,那么服务提供商部署ACL

就会出现问题

答案 1 :(得分:0)

我发现造成这种情况的一个可能原因是VS2012在允许访问wsdl之前尝试对安全代理进行身份验证。

为了解决这个问题,我开始使用命令行wsdl.exe工具生成Web服务数据类型。之后我没有任何错误。

对于.Net 4.0,可以在“”C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v8.0A \ bin \ NETFX 4.0 Tools \ wsdl.exe“

找到

使用它从wsdl文件自动生成类型的示例:

wsdl / l:CS YourWebservice.wsdl / pu:username / pp:password /pd:yourFirmDomain.com Common.xsd xmlmime.xsd