可以在Jquery和C#中访问相同的WCF吗?

时间:2014-04-10 05:18:34

标签: c# jquery wcf

我使用this example为jQuery创建了一个WCF服务 我的WCF目前正在使用jQuery for PhoneGap app我可以在C#中的其他应用程序中使用相同的WCF服务。

1 个答案:

答案 0 :(得分:2)

可以为不同的应用程序使用相同的WCF服务。 为同一个WCF服务创建多个绑定和多个端点

多个绑定

<bindings>
  <netTcpBinding>
    <binding name="netTcpBindingConfiguration" receiveTimeout="infinite" sendTimeout="10.00:00:00" maxBufferPoolSize="1073741824" maxBufferSize="1073741824" maxReceivedMessageSize="1073741824">
      <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
    </binding>
  </netTcpBinding>
  <webHttpBinding>
    <binding name="webHttpBindingConfiguration" receiveTimeout="00:10:00"  sendTimeout="10.00:00:00" maxBufferPoolSize="1073741824" maxReceivedMessageSize="1073741824">
      <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
    </binding>
  </webHttpBinding>
</bindings>

多个端点 - 暴露两个端点,一个使用 webHttpBinding ,另一个使用 netTcpBinding

请注意端点的不同,即使用 behaviorConfiguration =“EndpointBehavior”。使用webHttpBinding的端点通过JSON公开数据。

<services>
  <service behaviorConfiguration="behavior" name="WCFCallbackTry.Service1">
    <endpoint address="http://localhost:8018/Service1.svc" bindingConfiguration="webHttpBindingConfiguration" binding="webHttpBinding"
      contract="WCFCallbackTry.IService" name="HttpEndPoint" behaviorConfiguration="EndpointBehavior"/>
    <endpoint address="net.tcp://localhost:8004/Service1.svc"  bindingConfiguration="netTcpBindingConfiguration" binding="netTcpBinding"
      contract="WCFCallbackTry.IService" name="NetTcpEndPoint"/>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8018/Service1.svc"/>
      </baseAddresses>
    </host>
  </service>
</services>

为了使用Jquery公开WCF,必须使用下面的行为,如您引用的链接中所示。

<endpointBehaviors>
<behavior name="EndpointBehavior">
 <webHttp/>
</behavior>

使用netTCPBinding的端点可以使用C#从客户端应用程序使用,而webHttpBinding可以使用JQuery使用。

与上述类似的配置可以与不同或相同类型的绑定一起使用,同时暴露不同的端点。

希望这有帮助