silverlight 与IIS宿主的net.tcp WCF通讯实现过程

silverlight 与IIS宿主的net.tcp WCF通讯实现过程,第1张

概述silverlight 与IIS宿主的net.tcp通讯方式据说比其它绑定要快N倍于是决定把以前的HttpBinding改成tcpBinding,但整个过程并不顺利有若干地方需要注意才能完成整个工作。为了便于以后参考特大概回忆记录如下步骤: 1、服务端的配置文件需要正确的Web.config文件 1)绑定配置    <netTcpBinding>     <binding name="netTcp

silverlight 与IIS宿主的net.tcp通讯方式据说比其它绑定要快N倍于是决定把以前的httpBinding改成tcpBinding,但整个过程并不顺利有若干地方需要注意才能完成整个工作。为了便于以后参考特大概回忆记录如下步骤:

1、服务端的配置文件需要正确的Web.config文件

1)绑定配置

   <netTcpBinding>
    <binding name="netTcpBindConfig"  closeTimeout="00:30:00"
      openTimeout="00:30:00" receiveTimeout="00:30:00" sendTimeout="00:30:00"
      transactionFlow="false" transferMode="Buffered" transactionProtocol="oleTransactions"
      hostnameComparisonMode="StrongWildcard" ListenBacklog="10"
      maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxConnections="10"
      maxReceivedMessageSize="2147483647">
     <readerQuotas maxDepth="2147483647"
             maxStringContentLength="2147483647"
             maxArrayLength="2147483647"
             maxBytesPerRead="2147483647"
             maxnametableCharCount="2147483647" />
     <reliableSession ordered="true"  inactivityTimeout="00:01:00" enabled="false" />
     <security mode="None">
      <transport clIEntCredentialType="windows" protectionLevel="EncryptAndSign"  />
      <message clIEntCredentialType="windows"  />
     </security>
    </binding>
   </netTcpBinding>

2)绑定服务端口

   <service behaviorConfiguration="MyBehavior" name="CMIAP.WCF.ZT">
    <host>
     <baseAddresses>
      <add baseAddress="net.tcp://localhost:4503/ZT.svc"/>
     </baseAddresses>
    </host>
    <endpoint address="" binding="netTcpBinding" contract="CMIAP.WCF.ZT" bindingConfiguration="netTcpBindConfig" />
    <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
   </service>
2、客户端引用时注意不能直接引用http的地址也不能引用上面baseAddresses的地址,具体地址需要通过部署服务端后在IE里访问后得到如下图所示:

在客户端引用地址栏输入上面获取的net.tcp://后面的地址即可。

3、跨域问题

这个问题非常经典,出现的情况很多,主要解决好跨域文件和位置基本能解决所有问题

出现的错误主要是“TCP 错误代码 10013: 试图以其访问权限所禁止的方式访问套接字”

跨域文件clIEntaccesspolicy.xml必须放到80端口所在路径下才行,可通过http://localhost/clientaccesspolicy.xml能正常访问来进行测试

<?xml version="1.0" enCoding="utf-8" ?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*">
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
        <socket-resource port="4502-4530" protocol="tcp" />
   </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>
注意上面的红色部分是我一直未能成功之所在,以前的绑定方式不需要这条即能解决跨域问题,但net.tcp则必须加上这条

4、系统配置部分

要实现功能还必须注意系统配置要进行如下设置

需要启用这个功能

其次,需要安装IIS6的兼容性和管理工具

5、访问端口

注意绑定的端口只能在4502-4530这个范围才行

 

最后,只要注意以上几个地方大都应该能够成功了

总结

以上是内存溢出为你收集整理的silverlight 与IIS宿主的net.tcp WCF通讯实现过程全部内容,希望文章能够帮你解决silverlight 与IIS宿主的net.tcp WCF通讯实现过程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1064249.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存