2013-10-03 71 views
0

今天,我想出了一些与我们的网站非常相似的东西。 我们有性能问题。 IIS 7.5(Windows 2008)上的Asp.NET Mvc网站每隔X次都会冻结。 它是一个正常的电子商务系统,连接到相同的Infastructure上的MSSQL服务器。 但是当您进入产品的详细页面时,我们通过AJAX在页面加载后询问库存, 我们有2个仓库,我们必须询问库存。当连接到外部数据库时,ASP.NET Mvc网站冻结

今天其他仓库了服务器的问题,从我们的电子商务网站在此服务器(与1个查询外部方便地连接到询问股票)的连接得到已逾时该服务器发出的每个连接。但正如我所说,这个外部服务器并没有涉及更多的Ajax调用查询。

奇怪的是,建立到此外部服务器的连接时,所有用户(整个IIS池)都会被冻结。连接超时后,所有的请求都会被处理,但直到那时才会处理。

这是正常的吗?我认为所有的请求都是在自己的“线程”中完成的。 P.D.它不是一个链接服务器或其他东西。它直接连接到那里和1个查询,仅此而已。

一些建议吗?

+0

连接池可能会得到充分时,它等待超时。它默认为100个活动连接。 http://msdn.microsoft.com/en-us/library/8xx3tyca.aspx –

+0

它是一种不同的连接池(不一样的电子商务CnString) –

+0

看性能计数器,用于连接池的时候,你所观察的行为。 http://msdn.microsoft.com/en-us/library/ms254503%28v=vs.100%29.aspx –

回答

0

很多由于体系结构的非常一般的描述和提供的有限的诊断信息,这可能发生的原因。

但是,有一点想到,值得检查。有only so many IIS worker threads and completion ports可用。如果所有(或非常多)工作线程最终等待失败的连接,则不会有(或很少)工作线程可用于处理其他请求。

如果你可以(通过例如故意错误配置的连接)重现该问题在开发或质量保证,你可以尝试诊断IIS的状态。看看这个指导:

http://www.orcsweb.com/blog/terri/troubleshoot-iis-application-hangs-unresponsiveness/

+0

在开发中它没有发生(IIS Express)。通过错误的连接重新生成场景,并尝试建立连接时,其他请求得到处理没有任何问题。 IIS上的WorkerThreads没有达到Max,因为据我所知,它会用503状态码作出响应。 –