IIS 7.5在Web服务(ASMX)请求60秒后抛出sc-win32-status:995

时间:2012-10-23 14:28:35

标签: web-services .net-4.0 web-config iis-7.5 ajaxcontroltoolkit

我在.NET 4.0集成模式下有一个Web应用程序,通过localhost在同一服务器上调用.NET 2.0集成模式下的Web服务(ASMX)。

10次中有9次都可以正常工作,但有时Web应用程序会在通话过程中出现“请求超时”和“线程被中止”错误。它在此代码示例的最后一行给出了错误:

 Dim Service As New localhost.Service
 Dim Input As New localhost.InputProduct
 Dim Ret As New localhost.OutputProduct 
 Try
     Ret = Service.RequestProduct(Input) 
 Catch 
 Finally
   Service.Dispose()    
   If Ret.succesfull = True Then
      If Response.IsClientConnected = True Then
         Response.Redirect("success.aspx", False)
      End If    
   End If 
End Try

在Web服务的日志文件中,我得到一个sc-win32-status:995和一个sc-status:200,通常所用的时间总是超过60秒(time-take:62743) 。通常这需要14秒才能完成而没有错误。

单击按钮后,在ASPX页面后面的代码中进行调用。 在页面上有一个Updatepanel,该按钮用作PostBackTrigger。

问题:为什么在Web服务调用后会出现这些“请求超时”错误?

服务器:

  • Windows Server 2008 R2 SP1
  • IIS 7.5
  • Microsoft UrlScan 3.1
  • Windows防火墙

2 个答案:

答案 0 :(得分:2)

我终于找到了这个问题的答案。原来这是web.config中的这段代码:

<pages smartNavigation="true">

关闭此功能后,我再也没有收到任何超时错误。 超时的原因可能是smartNavigation设置在IE浏览器中生成的IFRAME(不在Firefox / Chrome中)

我已经在.NET 2.0中将此设置用于eliminating the flash caused by navigation,在升级到.NET 4.0之后,Visual Studio并未提供任何关于此设置已被弃用的线索。

我找到了答案,因为我还有其他问题要处理。使用最新的ajaxToolkit for .NET 4.0后,在使用AutoCompleteExtender时IE7 / 8中出现此javascript警告错误:

  

堆栈溢出:0

结果与smartNavigation设置有关。因此,删除此设置会立即解决两个问题。希望我能帮助这个人,因为对我而言,这是我在短暂的互联网历史中发现的最烦人的错误之一。

答案 1 :(得分:0)

考虑更改位于web服务器的machine.config中的httpRuntime executionTimeout =“xxx”标记。默认情况可能是您的情况的两个简称。以秒表示的值考虑加倍。