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

本文关键字:引用 出错 服务 Web VS2012 添加 | 更新日期: 2023-09-27 18:35:45

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

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

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

我尝试在VS2012

中将服务引用添加到新项目,在管理员模式下启动VS2012并重新启动我的PC。

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

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

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

更改安全标记中的 web.config 文件,

<security mode="TransportCredentialOnly">
    <transport clientCredentialType="Anonymous"/>
    <message clientCredentialType="UserName" algorithmSuite="Default"/>
</security>

我想这会让你大吃一惊。如果它不起作用,则您的服务提供商部署 ACL 存在问题

我发现可能导致这种情况的一个可能原因是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