WCF测试客户端无法添加服务,无法获取元数据

本文关键字:获取 元数据 服务 添加 测试 WCF 客户端 | 更新日期: 2023-09-27 18:22:10

有人能告诉我为什么在添加服务时会出现这个错误吗?

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

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

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

我还设置了服务行为:

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

WCF测试客户端无法添加服务,无法获取元数据

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

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

Service="MyNamespace.Service1"应读取Service="MyNamespace.MyRenamedService"

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

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

我想明白了。我在我的一个端点上使用了一个绝对路径,我有不止一个。我把它改成了一条相对路径,然后一切都正常了。

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

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

有些时候对元数据或设置没有任何操作;相反,我们可以简单地使用127.0.0.1,而不是http:''localhost''

如果添加元数据端点不是您的问题。请在错误消息详细信息中进一步查看。我有一个不见了的图书馆;"无法加载文件或程序集*"。

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

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

所以我放弃了,开始阅读WCF。在这里,我发现VS应该以管理员身份启动。以下是文章:WCF入门教程事实证明,我必须在选中"以管理员身份运行"的情况下启动VS2010。这解决了这个问题,我能够在VS2010中测试WCF服务。我发布这个答案是为了防止其他人过度关注"以管理员身份运行"。

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

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

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

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

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

在我的情况下,我没有启用BindingParams.AllowHttpGet。当设置为true时,它就起作用了。。。

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

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

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