Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net WCF测试客户端显示1个端点,而配置文件显示3个端点_Asp.net_.net_Wcf - Fatal编程技术网

Asp.net WCF测试客户端显示1个端点,而配置文件显示3个端点

Asp.net WCF测试客户端显示1个端点,而配置文件显示3个端点,asp.net,.net,wcf,Asp.net,.net,Wcf,我有一个WCF web服务,它公开了3个端点。 但当我将其调试到WCF测试客户端时,它只显示了一个basicHttpBinding端点 1:为什么会这样? 2:这里我有一个操作契约“CallADSWebMethod”,它返回一个DataContract(VINDescription)…只是想知道..为什么这对我来说实时性很好,但它仍然不能由测试客户端测试。我的意思是测试客户端说“测试客户端不支持此操作” 3:在endpointBehaviors中—我只给出了,没有给出……但它仍然可以通过jque

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

1:为什么会这样?

2:这里我有一个操作契约“CallADSWebMethod”,它返回一个DataContract(VINDescription)…只是想知道..为什么这对我来说实时性很好,但它仍然不能由测试客户端测试。我的意思是测试客户端说“测试客户端不支持此操作”

3:在endpointBehaviors中—我只给出了,没有给出……但它仍然可以通过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>

WCF测试客户机将只显示SOAP端点,并且只有一个端点(具有
基本HttpBinding
的端点)

  • json
    端点使用
    webHttpBinding
    (基于REST
    ,不能由WCF测试客户端进行测试)

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

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

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


如果您需要更高级的web服务测试,您应该查看用于测试SOAP web服务的(免费提供的)-包括复杂的参数类型和更多。

在同一个操作契约“CallADSWebMethod”中,该契约返回数据契约(描述)…只是想知道..为什么这对我来说实时性很好,但测试客户端仍然无法测试..我的意思是测试客户端说“测试客户端不支持此操作”@Learner:WCF测试客户端相当有限,其中一个限制是它无法将您自己的自定义数据类型作为参数处理。基本上只能使用类型为
int
string
的参数测试方法,
datetime
等等-简单化的数据类型。好吧..新版本的WCF测试客户端可能会随此而来。@Learner:我还没有听到任何消息-但我个人非常怀疑WCF测试客户端会有多大改进。。。。。改用SoapUI@学习者:请参阅:此元素启用端点行为,使您能够从ASP.NET AJAX网页使用服务。-也