【问题标题】:WCF Test client showing 1 endpoint, while Config file exposing 3 endpointsWCF 测试客户端显示 1 个端点,而配置文件公开 3 个端点
【发布时间】:2012-10-16 12:04:17
【问题描述】:

我有一个公开 3 个端点的 WCF Web 服务。 但是当我将它调试到 WCF 测试客户端时,它只显示一个 basicHttpBinding 端点。

1 : 为什么会这样?

2:这里我有一个操作合同“CallADSWebMethod”,它返回一个 DataContract (VINDescription)..只是想知道..为什么这对我来说非常有用,但它仍然不能被测试客户端测试..我的意思是测试客户端说“测试客户端不支持此操作”

3 : 在 endpointBehaviors 中 - 我只给出了,没有……但它仍然可以通过 jquery ajax 调用工作..那么“enableWebScript”的意义是什么?? p>

配置信息

<system.serviceModel>
    <services>
      <service behaviorConfiguration="asmx" name="ADSChromeVINDecoder.Service">
        <endpoint address="basic"
                  binding="basicHttpBinding"
                  name="httpEndPoint"
                  contract="ADSChromeVINDecoder.IService"/>
        <endpoint address="json"
                  binding="webHttpBinding"
                  behaviorConfiguration="webBehavior"
                  name="webEndPoint"
                  contract="ADSChromeVINDecoder.IService"/>
        <endpoint contract="IMetadataExchange"
                  binding="mexHttpBinding"
                  address="mex" />
      </service>
    </services>
    <behaviors>
      <endpointBehaviors>
        <behavior name="webBehavior">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="asmx">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
  </system.serviceModel>

【问题讨论】:

    标签: asp.net .net wcf


    【解决方案1】:

    WCF 测试客户端将只显示 SOAP 端点 - 并且只有其中一个(带有 basicHttpBinding 的那个)。

    • json 端点使用 webHttpBinding(基于 REST - 无法由 WCF 测试客户端测试)

    • mex 端点是元数据交换端点 - 不是真正的服务端点。

    因此,WCF 测试客户端仅正确显示一个 (SOAP) 端点 - 只有一个!

    更新: WCF 测试客户端相当有限,其中一个限制是它不能将您自己的自定义数据类型作为参数处理。您基本上只能测试具有intstringdatetime 等类型参数的方法 - 简单的数据类型。

    如果您需要更高级的 Web 服务测试,您应该查看(免费提供的)SoapUI tool 以测试您的 SOAP Web 服务 - 包括复杂的参数类型等等。

    【讨论】:

    • 在同一个操作合同“CallADSWebMethod”中,它返回一个 DataContract (VINDescription)..只是想知道..为什么这对我来说非常有效,但它仍然不能被测试客户端测试..我的意思是测试客户端说“测试客户端不支持此操作”
    • @Learner:WCF 测试客户端相当有限,其中一个限制是它不能将您自己的自定义数据类型作为参数处理。您基本上只能测试具有intstringdatetime 等类型参数的方法 - 简单的数据类型。
    • Ok..所以可能是新版本的 WCF 测试客户端会附带这个。
    • @Learner:我没有听说过任何一种方式 - 但我个人非常怀疑 WCF 测试客户端是否会得到很大改进......改用 SoapUI!
    • @Learner:参见MSDN documentation on EnableWebScript此元素启用端点行为,从而可以使用 ASP.NET AJAX 网页中的服务。 - 也为 see this blog post here elaborating a bit more
    猜你喜欢
    • 1970-01-01
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    • 1970-01-01
    • 2010-09-12
    相关资源
    最近更新 更多