【发布时间】:2020-05-26 13:11:28
【问题描述】:
我们有一个在我们的环境中运行良好的 asp.net Web 应用程序。我们的一位合作伙伴尝试在他们的环境中使用完全相同的代码,并且一次只能处理一个请求。例如,只有一个页面调用长时间运行的存储过程(5 分钟)。如果您调用该页面并尝试打开一个新页面,则新页面将在第一页完成后才会提供。我们可以通过查看其应用程序池的工作进程来查看请求的备份。他们在 Windows 2012 服务器上运行 IIS 8.5。他们也在运行 SQL Server 2016。
数据库连接的结构与我们环境中的相同。存储过程未包装在事务中。有什么想法可能导致这种行为吗?
【问题讨论】:
-
如果您使用会话,会话访问将按用户进行序列化。解决方案:不要使用 session 或者不要使用长时间运行的请求。
-
几年前,我在一个(仅限德语,抱歉)开发人员forum post 中总结了这一点。也许那里的链接可以帮助您了解可能的问题并找到替代方案。 (您可以使用谷歌浏览器内置的翻译功能将论坛帖子翻译成英文)。