2013-08-26 61 views
1

我在IIS 6.0上有一个web应用程序。它不断处理大量的短时间请求(15-30毫秒的处理时间)。当有一些(1-10)长时间请求时,所有短时间请求都会减慢(处理时间高达2000-6000毫秒,其中一些时间超过100000)。IIS 6.0请求减速

是否应该像IIS之间的请求之间的隔离?不应该认为一个请求不应该打断另一个?

在IIS日志是这样的:

[Normal work] 
cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken 
192.168.1.7 200 0 0 2394 524 734 
192.168.1.7 200 0 0 2394 524 0 
192.168.1.7 200 0 0 2394 524 0 
192.168.1.7 200 0 0 2394 524 15 
192.168.1.7 200 0 0 2394 524 15 
192.168.1.7 200 0 0 2394 524 0 
192.168.1.7 200 0 0 2394 524 0 
192.168.1.7 200 0 0 2394 524 15 
192.168.1.7 200 0 0 2394 524 46 

[Slowdown] 
cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken 
192.168.1.7 200 0 64 0 522 508251 
192.168.1.7 200 0 64 0 522 91827 
192.168.1.7 200 0 64 0 522 386438 
192.168.1.7 200 0 64 0 522 445947 
192.168.1.7 200 0 0 178 522 35545 
192.168.1.7 200 0 64 0 522 274130 

SC-Win32的状态64层的意思是“指定的网络不再可用”,但没有断开。 我试图用IISTuner(http://iistuner.codeplex.com/)这样的工具调整IIS,它不会产生任何影响。

  • 为什么出现这种情况?
  • 如何解决该问题?

回答

0

看起来像所有的麻烦都在appltication本身。我们在其上使用了带有DataGridView的ASP.NET表单(页面在服务器端形成)。在长时间运行的请求时,服务器必须处理它并将数据加载到其内存中 - 以便阻止其他活动。

我们用ASP.NET MVC(客户端页面)重写应用程序,麻烦就没有了。