如何增加在Windows服务应用程序的Web服务超时?(How to increase the we

2019-10-16 22:14发布

我正在使用一个ASMX Web服务IIS7中导入数据的Web应用程序。 我们有一个Windows服务拿起要导入的文件,并将其发送直通Web服务。 我在1分钟后大量进口了以下错误:

请求信道超时而00后等待答复:00:59.9843750。 增加传递给调用请求或增加对绑定的SendTimeout值的超时值。 分配给此操作的时间可能是更长的超时的一部分。

我看到过很多这样的帖子,其中的建议是没有运行,长期Web服务调用。 我原则上同意,但是这是一个低流量的内部网站。 直到证明,否则,我相信工作的量,重新设计了系统的其他部分将长于更新超时。

到目前为止,我们已经尝试过更新basicHttpBinding的在web.config性能,特别是openTimeout,receiveTimeout,,SendTimeOut和closeTimeout性能。 有到任何变化。

我们也试图使调用Web服务的对象被创建后的代码中设置这些属性。 仍然没有运气。

我看着直通IIS设置并没有看到当前设置为60秒的任何超时值。 我们也尝试在web.config中没有影响室温调高executionTimeout。

什么样的配置价值我缺少什么? 是否有其他方法来修改超时?

更新:

按照要求,这里有CONFIGS:

App.config中

<configuration>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="ImportServiceSoap" closeTimeout="00:02:00" openTimeout="00:02:00"
                    receiveTimeout="00:10:00" sendTimeout="00:10:00" allowCookies="false"
                    bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferSize="1265536" maxBufferPoolSize="12524288" maxReceivedMessageSize="1265536"
                    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                    useDefaultWebProxy="true">
                    <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://mysite.com/Importservice.asmx"
                binding="basicHttpBinding" bindingConfiguration="ImportServiceSoap"
                contract="ImportService.ImportServiceSoap" name="ImportServiceSoap" />
        </client>
    </system.serviceModel>
</configuration>

的web.config(删节,除去的ConnectionStrings):

<configuration>
  <appSettings>
    <system.web>
      <roleManager enabled="false" cacheRolesInCookie="false" defaultProvider="AspNetSqlRoleProvider" />
      <siteMap defaultProvider="MenuElementsProvider">
      </siteMap>
      <compilation debug="false" targetFramework="4.0">
      </compilation>
      <customErrors mode="RemoteOnly" defaultRedirect="Shared/Internal_Server_Error.html">
        <error statusCode="404" redirect="Shared/Internal_Server_Error.html" />
        <error statusCode="500" redirect="Shared/Internal_Server_Error.html" />
      </customErrors>
      <authentication mode="Windows" />
      <identity impersonate="true" />
      <authorization>
        <allow users="*" />
      </authorization>
      <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
      <sessionState mode="InProc" stateConnectionString="tcpip=127.1.0.1" cookieless="false" timeout="30" />
      <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="en-US" uiCulture="en-US" />
      <httpRuntime maxRequestLength="102400" requestValidationMode="2.0" executionTimeout="14400" />
    </system.web>
    <location path="DefaultWsdlHelpGenerator.aspx">
      <system.web>
        <pages styleSheetTheme="" />
        <httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
      </system.web>
    </location>
    <system.webServer>
      <validation validateIntegratedModeConfiguration="false" />
    </system.webServer>
  </appSettings>
</configuration>

Answer 1:

是否要更新的代码,或只是在客户端的app.config绑定超时? 我已经看到了改变的app.config的设置值从一部开拓创新创建客户端web服务的忽视 - 做旧的设置留即使在app.config已经改变。 MDV



文章来源: How to increase the web service timeout in a Windows Service application?