这已经发生了几次我知道。如果我添加到许多必须为是一个与,WCF测试的客户应用程序,将引发一个例外:

"未能添加一项服务。服务的元数据不可以访问。请确保您的服务的运行和暴露的元数据。"

在细节上,它仍在继续:

错误:无法获取元数据。请求失败,HTTP状态400:糟糕的请求。

如果我取出几个操作合同,然后一切都很好。外面测试的客户也是好的。

有帮助吗?

解决方案 2

感谢您的答复。

这些是有问题的行:

<OperationContract(), FaultContract(GetType(WcfService.Common.DefaultFaultContract))> _
Function GetJobSubTypesForJobTypeList(ByVal jobTypeList As Dictionary(Of Integer, String)) As List(Of JobSubTypeOfJobTypeDTO)

<OperationContract(), FaultContract(GetType(WcfService.Common.DefaultFaultContract))> _
Function GetActivityTypesForJobTypeList(ByVal jobTypeList As Dictionary(Of Integer, String)) As List(Of ActivityTypeOfJobTypeDTO)

原来,我们缺少的返回类型制定者(DTO)和默认构造函数。

其他提示

你能不能更具体关于什么类型的操作你必须去除来自服务合同,以使它工作?

这里有一些已知的限制 WcfTestClient.exe 工具来用。净框架3.5SDK。注意,所有这些问题已经被固定在用的版本的船舶。净3.5SP1.

  • 客户没有维持一个 届会 与被调用的服务。所有呼吁都在新的代理情况
  • 自动生成的 配置文件 对客户的代理,可以查看,但未编辑
  • 服务的使用 XML器 而不是的数据合同的程序不能援引
  • 服务的使用 合同的消息 不能援引

这是我所遇到过最奇怪的问题之一。您可能需要检查你的代码和看出来的问题,例如:

Private _NetPay As Boolean
<DataMember()> _
Public Property NetPay() As Boolean
    Get
        Return _Amount = 0
    End Get
    Set(ByVal value As Boolean)
        _NetPay = value
    End Set
End Property

我已定义的数据成员与上述。注意返回statment。它试图返回一个计算值。我删除该数据成员;它工作得很好。

这是我不得不添加到我的devenv.exe.config为了得到我的WCF测试客户端具有非常大的服务工作。然后我不得不重新启动我的IDE。这可能不是你所期待的,但我希望它能帮助。

<system.serviceModel>
  <bindings>
    <customBinding>
      <binding name="MyBinding">
        <textMessageEncoding>
          <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
        </textMessageEncoding>
        <httpTransport maxReceivedMessageSize="2147483647" maxBufferSize="2147483647"/>
      </binding>
    </customBinding>
  </bindings>
  <client>
    <endpoint binding="customBinding" bindingConfiguration="MyBinding" contract="IMetadataExchange" name="http"/>
  </client>
</system.serviceModel>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top