WCF测试客户端显示1个终结点,而配置文件暴露3个终结点。

3

我有一个WCF web 服务,其中暴露了三个端点。但是当我调试它到WCF测试客户端时,它只显示一个basicHttpBinding端点。

1:为什么会这样呢?

2:在这里,我有一个操作契约"CallADSWebMethod",它返回一个DataContract(VINDescription)..只是好奇想知道..为什么这在实时中对我非常有效,但是测试客户机无法测试..我的意思是测试客户端说"此操作不受测试客户端支持"

3:在这里,端点行为中,我只给出了<webHttp/>而没有<enableWebScript/>..但是它仍然可以从jquery ajax调用中工作..那么"enableWebScript"的意义是什么?

测试客户端图片

配置信息

<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>
1个回答

5
WCF测试客户端只显示SOAP端点,而且只有一个(使用basicHttpBinding的那个)。
  • json端点使用基于RESTwebHttpBinding(无法由WCF测试客户端测试)。

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

因此,WCF测试客户端正确地仅显示一个(SOAP)端点 - 只有一个! 更新: WCF测试客户端相当受限制,其中一个限制是它无法处理自定义数据类型作为参数。您基本上只能测试具有intstringdatetime等简单数据类型的参数方法。
如果您需要更高级的Web服务测试,您应该查看(免费提供的)SoapUI工具,用于测试您的SOAP Web服务 - 包括复杂的参数类型和更多内容。

在同一个操作契约“CallADSWebMethod”中,返回一个数据契约(VINDescription)...只是好奇想知道...为什么这在实时情况下对我很有效,但仍然无法由测试客户端测试...我的意思是测试客户端说“此操作不受测试客户端支持”。 - James
@学习者:WCF测试客户端相当有限,其中一个限制是它无法处理自定义数据类型作为参数。你基本上只能测试具有intstringdatetime等类型参数的方法 - 简单的数据类型。 - marc_s
好的,可能新版本的WCF测试客户端会随之而来。 - James
@学习者:我没有听说过任何消息,但我个人非常怀疑WCF测试客户端会有很大改进......还是使用SoapUI吧! - marc_s
1
@学习者:请参考MSDN文档中关于EnableWebScript的说明此元素启用了终结点行为,使得从ASP.NET AJAX网页中调用服务成为可能。 - 同时,您也可以查看这篇博客文章以获取更多信息 - marc_s
明白了,我把ASP.NET ajax和jQuery ajax搞混了。 - James

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接