【发布时间】:2017-02-22 18:56:01
【问题描述】:
今天发生在我身上。 几个月以来,我的 MVC.Net 应用程序运行良好。今天执行这部分代码的时候报错了(这是简化版)
var cmd = db.Database.Connection.CreateCommand();
cmd.CommandText = $"mySchema.myStoredProcedureName {param1};
db.Database.CommandTimeout = 0;
db.Database.Connection.Open();
var reader = cmd.ExecuteReader();
其中 db 是 DbContext EF6。 timeOut 发生在最后一行 我尝试了“使用”的语法没有成功 我也尝试了以下,可能连接没有打开
while(db.Database.Connection.State != ConnectionState.Open) {
db.Database.Connection.Open(); }
不!成功。
存储过程在 SSMS 上 2 秒返回结果。
最后我用另一个名字创建了一个类似的存储过程 然后就成功了。
我的问题: - MSSQL 是否将我的存储过程列入黑名单?
【问题讨论】:
-
原来的名字是以 sp_ 开头的吗?
-
您是否重新创建了存储过程?此操作可能会导致存储过程的查询执行计划被刷新,这可能是解决问题的原因。另一种方法是使用 WITH RECOMPILE 执行存储过程 - 请参阅 technet.microsoft.com/en-us/library/…
-
@AndrewDeighton,每当它再次发生时,我都会尝试,因为我放弃了错误的程序,谢谢
-
@GuidoG 它没有
标签: sql-server entity-framework stored-procedures timeout