WCF 测试客户端:添加服务失败。服务元数据可能无法访问。确保您的服务正在运行并公开元数据

Posted

技术标签:

【中文标题】WCF 测试客户端:添加服务失败。服务元数据可能无法访问。确保您的服务正在运行并公开元数据【英文标题】:WCF Test Client : Failed to add a service. Service metadata may not be accessible. Make sure your service is running and exposing metadata 【发布时间】:2011-12-14 21:41:34 【问题描述】:

我目前正在尝试让同步框架示例工作:sample

解决方案编译时没有任何错误或警告。

但是当我按下 F5 时,WCF 测试客户端会启动并抛出以下错误。

本地\临时\测试客户端 项目\10.0\5b6aab8a-6629-4a12-87c2-e9e75ba9c1e4\Client.cs(379,13) : 错误 CS0246:找不到类型或命名空间名称“架构” (您是否缺少 using 指令或程序集引用?)

下面是来自Client.cs的代码,上面的错误引用了

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("svcutil", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.datacontract.org/2004/07/Microsoft.Synchronization")]
public partial class SyncIdFormatGroup

    private schema schemaField;
    private System.Xml.XmlElement anyField;

    /// <remarks/>
    [System.Xml.Serialization.XmlElementAttribute(Namespace="http://www.w3.org/2001/XMLSchema", Order=0)]
    public schema schema
    
        get  return this.schemaField; 
        set  this.schemaField = value; 
    

    /// <remarks/>
    [System.Xml.Serialization.XmlAnyElementAttribute(Order=1)]
    public System.Xml.XmlElement Any
    
        get  return this.anyField; 
        set  this.anyField = value; 
    

如果有人能帮我解决这个问题,那就太好了。

【问题讨论】:

您是否创建了一个名为 schema 的类?我认为它抱怨架构可能是一个关键字? 你能显示模式类的代码吗,它是否带有 [DataContract] 属性及其成员带有 [DataMember] 属性的标签? @stuartmclark 我没有任何名为模式的类。我所指的类是由 WCTTestClient 创建的 【参考方案1】:

找到解决方案 好吧,花了很多时间我破解了它。出于某种原因,如果我将示例作为控制台应用程序运行,它就可以正常工作。但是当我使用 WCFTestClient 时,我遇到了错误。如果我从合同中删除[ServiceKnownType(typeof(SyncIdFormatGroup))],它将在 WCFTestClient 中工作。希望对某人有所帮助。

【讨论】:

祝贺解决方案。如果可以,请确保将您的答案标记为“已接受”,以便其他人可以从您的成功中学习。干杯~ 对不起,伙计们,完全迷失了方向。已标记答案【参考方案2】:

您是否在服务中启用了 mex(元数据交换)端点?

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

【讨论】:

【参考方案3】:

阅读页面末尾的注释: 注意:如果您使用 Visual Studio 2010 编译这些示例,您首先需要删除对 Sync Framework 程序集的引用,然后将程序集引用重新添加到项目中。否则,您将看到“找不到类型或命名空间名称”编译错误。 http://code.msdn.microsoft.com/Database-Sync-SQL-Server-7e88adab#content 要么 http://code.msdn.microsoft.com/Database-SyncSQL-Server-e97d1208

【讨论】:

欢迎来到 *** - 很好的第一个答案。改善答案的一种方法是澄清您指的是哪个“页面”......

以上是关于WCF 测试客户端:添加服务失败。服务元数据可能无法访问。确保您的服务正在运行并公开元数据的主要内容,如果未能解决你的问题,请参考以下文章

WCF调试错误:添加服务失败。服务元数据可能无法访问。请确保服务正在运行并且正在公开元数据。

公开 WCF 4.0 Rest 模板服务的元数据

WCF学习——构建一个简单的WCF应用

当操作返回元页面 html 时,如何更好地诊断 WCF 服务?

WCF 显示超时错误

WCF 服务 - 身份验证/SSPI 错误