1

我有一个 ASP.NET 网站(.Net 4、IIS 7、C#)。当有人请求更新记录时,数据库有时会出现死锁。发生这种情况时,整个网站都会挂起,即使是不访问数据库的页面也是如此。

我的问题是,这是 ASP.NET 应用程序的正常行为吗?一页挂起,然后网站的其余部分挂起?如果没有,IIS 中是否有可以阻止这种情况的设置,或者有一种方法可以对应用程序进行编码来阻止这种情况?

4

1 回答 1

2

我的问题是,这是 ASP.NET 应用程序的正常行为吗?一页挂起,然后网站的其余部分挂起?

当然不。可能发生的情况不是网站挂起,因为数据库中存在死锁,而是因为您有某种资源泄漏(内存、耗尽线程数以服务请求、CPU 等)导致应用程序变得无响应. 实际上,您可能认为数据库是罪魁祸首,但我更倾向于认为您的代码是问题所在。通常,当数据库中出现死锁时(至少在 SQL Server 上),死锁中涉及的查询之一会自动终止。

于 2012-12-19T12:30:49.507 回答