我正在尝试为VS2012中的新项目添加对Web服务的引用。我一直收到以下错误:
下载时出错 'ServiceAddress / ConfigurationMgmt.wsdl / _vti_bin / ListData.svc / $元数据'。 请求失败,HTTP状态为400:错误请求。元数据 包含无法解析的引用: 'ServiceAddress / ConfigurationMgmt.wsdl'。 HTTP请求是 未经授权的客户端身份验证方案'匿名'。该 从服务器收到的身份验证标头是'基本的 境界= “CASM””。远程服务器返回错误:(401) 未经授权。如果在当前解决方案中定义了服务,请尝试 构建解决方案并再次添加服务引用。
更令人困惑的部分是我能够使用VS2010添加和使用对同一Web服务的引用。如果我在VS2012中打开VS2010项目并尝试更新服务引用,我会得到同样的错误。
我尝试在VS2012中添加服务引用到新项目,在管理模式下启动VS2012并重新启动我的电脑。
我还尝试在VS2012项目中添加对我们内部网上可用的其他服务的引用,它们似乎工作正常。
我在这里缺少一些基本的东西吗?我还能尝试找出这个问题背后的原因吗?
答案 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