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

C# WCF测试客户端无法添加服务,无法获取元数据,c#,wcf,metadata,C#,Wcf,Metadata,有人能告诉我为什么我在尝试添加服务时出现此错误吗 错误:无法从获取元数据。如果这是您可以访问的Windows(R)通信基础服务,请检查您是否已在指定地址启用元数据发布。有关启用元数据发布的帮助,请参阅位于的MSDN文档。WS-Metadata交换错误URI:元数据包含无法解析的引用:“”。远程服务器返回意外响应:(405)方法不允许。 远程服务器返回错误:(405)不允许使用方法。HTTP获取错误URI:下载“”时出错。请求失败,HTTP状态为403:禁止 更新:我已经有了以下端点 <en

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

错误:无法从获取元数据。如果这是您可以访问的Windows(R)通信基础服务,请检查您是否已在指定地址启用元数据发布。有关启用元数据发布的帮助,请参阅位于的MSDN文档。WS-Metadata交换错误URI:元数据包含无法解析的引用:“”。远程服务器返回意外响应:(405)方法不允许。 远程服务器返回错误:(405)不允许使用方法。HTTP获取错误URI:下载“”时出错。请求失败,HTTP状态为403:禁止

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

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

我还设置了服务行为:

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

我想出来了。我在我的一个端点上使用了一个绝对路径,我有多个端点。我把它改成了相对路径,然后一切都正常了

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


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

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


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

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

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

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

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

有时,元数据或设置没有任何需要做的事情;相反,我们可以简单地使用127.0.0.1而不是http:\localhost\

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

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


Service=“MyNamespace.Service1”
应改为
Service=“MyNamespace.MyRenamedService”

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

[CollectionDataContract(Name = "AdditionalProperties",
                            ItemName = "Property",
                            KeyName = "Key",
                            ValueName = "Value")]
public class AdditionalProperties : Dictionary<string, string>
{
}
[CollectionDataContract(Name=“AdditionalProperties”,
ItemName=“属性”,
KeyName=“Key”,
ValueName=“Value”)]
公共类附加属性:字典
{
}

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

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


关键是,首先启动服务(),然后只尝试WCF测试客户端。

在我的情况下,我没有启用BindingParams.allowttpget。当设置为true时,它工作了…

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


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

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

请尝试跟踪我发布的链接中的视频。当我遇到同样的错误时,它们对我起了作用。尽管通用消息声明它找不到元数据,但我尝试删除了一些OperationContract,结果成功了。事实证明,我有一个从字典继承的DataMember,导致了这个问题。谢谢。+5000来自我,谢谢你的解决方案:事实上,我在实体类中有一个只读属性,正是因为这个只读属性元数据没有交换,在用[DataContract]标记所有其他类和用[DataMember]标记属性并排除该只读属性后,我很乐意使用——谢谢