【发布时间】:2016-07-11 23:16:55
【问题描述】:
我有一个 Web 作业,它调用一个长时间运行的存储过程,该过程会一直超时。有人可以帮忙吗?
使用以下代码调用 Web 作业:
static void Main()
{
ApplicationDbContext context = new ApplicationDbContext();
context.Database.CommandTimeout = 6000;
context.PopulateJobTypeDescendants();
}
上下文(ApplicationDbContext)上的方法如下所示:
public void PopulateJobTypeDescendants()
{
Database.ExecuteSqlCommand("PopulateJobTypeDescendants");
}
运行 Web 作业时会引发以下异常。我们已经读到它可能与服务器上的计划/DTU 有关,所以我们从 S1 -> S3 开始,这仍然没有解决问题,并且进程在 45 秒后爆炸。奇怪的是,如果我从 SSMS 连接到 azure sql db 并调用存储过程,它工作正常。
[07/11/2016 22:25:02 > e2cf50: ERR ] 未处理的异常: System.Data.SqlClient.SqlException:超时已过期。超时 在操作完成之前经过的时间段或服务器处于 没有响应。尝试连接时发生此故障 路由目的地。尝试的持续时间 连接到原始服务器是 - [Pre-Login] 初始化 = 14; 握手=26; [登录] 初始化=0;身份验证=0; [登录后] 完成=1; ---> System.ComponentModel.Win32Exception:等待 操作超时
连接字符串如下所示:
<add name="TempsContext" connectionString="Server=tcp:[XXX],1433;Database=temps_testing;User ID=[XXX];Password=[XXX];Trusted_Connection=False;Encrypt=True;Connection Timeout=600;" providerName="System.Data.SqlClient" />
【问题讨论】:
标签: sql-server azure azure-sql-database