【问题标题】:WCF Test Client cannot add service, cannot obtain metadataWCF 测试客户端无法添加服务,无法获取元数据
【发布时间】:2012-02-25 06:10:45
【问题描述】:

谁能告诉我为什么在我尝试添加服务时出现此错误?

错误:无法从 http://myserver/myapp 获取元数据。如果这是您有权访问的 Windows (R) Communication Foundation 服务,请检查您是否已在指定地址启用元数据发布。有关启用元数据发布的帮助,请参阅位于 http://go.microsoft.com/fwlink/?LinkId=65455 的 MSDN 文档。 WS 元数据交换错误 URI:http://myserver/myapp 元数据包含无法解析的引用:'http://myserver/myapp'。远程服务器返回意外响应:(405) 方法不允许。 远程服务器返回错误:(405) Method Not Allowed.HTTP GET 错误 URI:http://myserver/myapp 下载“http://myserver/myapp”时出错。请求失败,HTTP 状态 403:禁止。

更新:我已经有以下端点,

<endpoint address="mex" 
          binding="mexHttpBinding"
          name="Metadata"
          contract="IMetadataExchange" />

我也设置了服务行为:

  <serviceBehaviors>
    <behavior name="myBehavior">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false" />
    </behavior>
  </serviceBehaviors>

【问题讨论】:

  • 尝试关注我发布的链接中的视频。当我遇到同样的错误时,他们为我工作

标签: c# wcf metadata


【解决方案1】:

我遇到了这个问题,事实证明,当我重命名 .svc 文件时,对它的引用并未从 Service1.svc 重命名。运行项目范围的搜索并将.Service1 替换为您的新名称。

<%@ ServiceHost Language="C#" Debug="true" Service="MyNamespace.Service1" CodeBehind="MyRenamedService.svc.cs" %>

Service="MyNamespace.Service1" 应为 Service="MyNamespace.MyRenamedService"

【讨论】:

    【解决方案2】:

    当您尝试从其中一个函数返回自定义类对象并且该函数在类声明中没有[DataContract] 属性时,也会发生这种情况。 WCF 无法确定您返回的类型,因此它会抛出标准消息。

    [Serializable]
    [DataContract]
    public class ServiceResult
    {
      ....
    }
    

    【讨论】:

    • 尽管通用消息指出它找不到元数据,但我尝试删除一些 OperationContracts 并且它有效。原来,我有一个从 Dictionary 继承的 DataMember,导致了这个问题。谢谢。
    • + 5000 来自我,感谢您的解决方案:实际上,我的实体类中有一个只读属性,只是因为在标记其他所有内容后,没有交换单个只读属性的元数据类带有 [DataContract] 和带有 [DataMember] 的属性并排除只读属性我很高兴 - 谢谢
    【解决方案3】:

    我想通了。我在我的一个端点上使用了绝对路径,而且我有不止一个。我将其更改为相对路径,然后一切正常。

    此外,如果您的服务未运行并且可能与元数据无关,则可能会发生这种情况。如果您有ConfigurationErrorsException,那么您也会看到此结果。

    我在尝试将配置更改保存到项目时也得到了它,然后它告诉我保存/覆盖/忽略等。它最终添加了“设计器”的项目子类型,一旦我删除它又回到正常工作。

    【讨论】:

      【解决方案4】:

      有些时候元数据或设置没有什么可做的;相反,我们可以简单地使用 127.0.0.1 而不是 http:\localhost\

      【讨论】:

        【解决方案5】:

        如果添加元数据端点不是您的问题。进一步检查错误消息详细信息。我有一个丢失的图书馆; “无法加载文件或程序集 *”。

        我需要将引用更改为 Copy Local = True

        【讨论】:

          【解决方案6】:

          我是 WCF 的新手,刚刚收到了一个包含 WCF 服务的项目。 我在 Win7 上的 VS2010 中使用 WCF 测试客户端时遇到了类似的问题。在尝试了本文和其他文章中的所有配置更改后,我仍然遇到类似的错误。

          所以我放弃并开始阅读 WCF。在这里我发现VS应该以管理员身份启动。这是文章:Getting Started Tutorial WCF 原来我必须启动 VS2010 并选中“以管理员身份运行”。这解决了这个问题,我能够在 VS2010 中测试 WCF 服务。我发布此答案以防其他人查看以管理员身份运行。

          【讨论】:

            【解决方案7】:

            我发现我有同样的错误,因为我使用的是从 Dictionary 继承的 DataContract。 DataContract 的正确设置应该如下:

            [CollectionDataContract(Name = "AdditionalProperties",
                                        ItemName = "Property",
                                        KeyName = "Key",
                                        ValueName = "Value")]
            public class AdditionalProperties : Dictionary<string, string>
            {
            }
            

            【讨论】:

              【解决方案8】:

              这是我对此错误消息的经验,可能对其他人有用。 我的 WCF 服务在 windows 2008 服务器上运行良好。我将相同的解决方案复制到开发机器,从解决方案中选择 .svc 文件,以便可以弹出 WCF 测试客户端。

              打开错误的WCF测试客户端无法获取元数据、程序集无法加载等

              关键是,首先启动服务 (http://localhost:port/Service) 然后只尝试 WCF 测试客户端。

              【讨论】:

                【解决方案9】:

                就我而言,我没有启用 BindingParams.AllowHttpGet。当它设置为 true 时,它​​起作用了......

                【讨论】:

                  【解决方案10】:

                  请检查并阅读所有错误文本。

                  在我的情况下,另一个 dll 有错误,但在上面的错误文本中显示相同的错误。

                  【讨论】:

                    【解决方案11】:

                    请检查您是否可以解析该地址并且您已指定正确的虚拟目录。 myserver 是否通过例如 ping myserver 解析为 IP? myapp 是正确的虚拟目录吗?您已为 wcf 服务启用元数据,但 url 很可能是错误的。

                    【讨论】:

                      猜你喜欢
                      • 2016-08-20
                      • 1970-01-01
                      • 2015-04-30
                      • 2011-07-10
                      • 1970-01-01
                      • 2014-04-04
                      • 2010-10-10
                      • 2012-05-06
                      • 1970-01-01
                      相关资源
                      最近更新 更多