SAL

  博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

【转】WCF 服务第一次调用慢的问题

Posted on 2013-07-31 09:23  SAL  阅读(644)  评论(0编辑  收藏  举报

写了一个WCF Serivces供外部程序通过.NET Businesss Connector调用AX的代码,第一次调用的时候总是很慢,有时候甚至超过1分钟,访问地址改成http://localhost的时候第一次调用又很快,改成IP地址后第一次就非常慢。

之所以这样是因为通过添加服务引用的方式生成的配置文件里,默认把useDefaultWebProxy设置为true了,这种情况下在连接WCF Serives的时候客户端总是尝试查找代理,找不到后再直接连,这个时间很长,所以会出现超时,解决办法是把这个属性改成false,不让它找代理。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <bindings>
          
            <basicHttpBinding>
                <binding name="BasicHttpBinding_AXServices" closeTimeout="00:01:00"
                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    allowCookies="false" bypassProxyOnLocal="true" hostNameComparisonMode="StrongWildcard"
                    maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                    useDefaultWebProxy="false">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    <security mode="None">
                        <transport clientCredentialType="None" proxyCredentialType="None"
                            realm="" />
                        <message clientCredentialType="UserName" algorithmSuite="Default" />
                    </security>
                </binding>
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://192.168.0.110:8889/AXServices" binding="basicHttpBinding"
                bindingConfiguration="BasicHttpBinding_AXServices" contract="AXServices.AXServices"
                name="BasicHttpBinding_AXServices" />
        </client>
    </system.serviceModel>
</configuration>