【发布时间】:2020-02-13 10:46:38
【问题描述】:
我已经在 ASP.NET 2.0 和 SQL Server 2008 应用程序中遇到数据库事务超时数天了。
问题在于使用 SQL Server 分析器跟踪“调用 Web 服务的函数”。
我们的事务包括几个存储过程(sp)。但是存储过程#3 有一些字节要保存在数据库中,它会消耗时间。当时间超过 25 秒时,它会抛出一个超时异常消息:
消息:System.Web.Services.Protocols.SoapException:服务器无法处理请求。 ---> System.Data.SqlClient.SqlException:超时已过期。在操作完成之前超时时间已过或服务器没有响应。
在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 异常,布尔型 breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
我的代码:
using (System.Data.Common.DbConnection connection = o_DB.CreateConnection())
{
connection.Open();
System.Data.Common.DbTransaction o_Transaction = connection.BeginTransaction();
try
{
- exec sp1
- exec sp2
foreach{
- exec sp3
}
}
我们在网络上尝试了一些解决方案,但没有奏效。我希望有人能帮帮我。 非常感谢。
web.config 的连接字符串中没有timeout,它不会在 15 秒后出现异常(默认)
我们在web.config中设置了事务超时:
<system.transactions>
<machineSettings maxTimeout="00:00:30" />
</system.transactions>
【问题讨论】:
标签: c# sql-server-2008-r2 ado.net asp.net-2.0 connection-timeout