【问题标题】:Error when adding web service reference in VS2012在 VS2012 中添加 Web 服务引用时出错
【发布时间】:2013-10-17 17:34:21
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    我认为这会帮助你。 如果它不起作用,那么您的服务提供商部署 ACL

    中存在问题

    【讨论】:

      【解决方案2】:

      我发现导致此问题的一个可能原因是 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

      【讨论】:

        猜你喜欢
        • 2014-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-22
        • 1970-01-01
        • 1970-01-01
        • 2011-01-23
        相关资源
        最近更新 更多