我使用TCP协议在IIS上托管的服务器端使用WCF服务,并使用winforms客户端应用程序来调用该服务。
我也使用Caslte windsor进行DI和WCF代理创建。
var rpt1 = Windsor.Container.Resolve<IReportService>();
var data = rpt1.GetModules();
问题是当我将我的服务托管在不同机器上的IIS上时(即使在不同的地理位置),返回数据所需的时间也非常短。
出于测试和开发目的,我创建了基于小型控制台的应用程序来在本地托管WCF。
现在我遇到的问题是当客户端向本地托管服务器发送请求时,在服务器代码库中命中VS的调试点需要30多ms。 这种情况完全是随机的,有时甚至超过4-5分钟。
<bindings>
<customBinding>
<binding name="CustomNetTcpBinding" closeTimeout="01:01:00" openTimeout="01:03:00" receiveTimeout="01:10:00" sendTimeout="01:10:00">
<reliableSession ordered="true" inactivityTimeout="01:10:00" />
<transactionFlow/>
<gZipMessageEncoding enableCompression="true" innerMessageEncoding="textMessageEncoding">
<readerQuotas maxDepth="999999999" maxStringContentLength="999999999" maxArrayLength="999999999" maxBytesPerRead="999999999" maxNameTableCharCount="999999999"/>
</gZipMessageEncoding>
<windowsStreamSecurity/>
<tcpTransport maxReceivedMessageSize="999999999" maxBufferSize="999999999"/>
</binding>
</customBinding>
</bindings>
我也改变了下面的maxConnection ......
<connectionManagement>
<add maxconnection="200" address="*" />
</connectionManagement>
我在托管类型(本地和IIS)中使用相同的配置。
任何人都可以告诉我可能是什么原因或者我错过了什么。
提前致谢。