0

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

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

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

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

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

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

4

2 回答 2

1

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

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

我想这会帮助你。如果它不起作用,那么您的服务提供商部署 ACL中存在问题

于 2013-10-17T17:52:02.623 回答
1

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

于 2015-04-21T15:36:40.233 回答