我使用此功能来检查与数据库服务器的连接是否正常,我将超时设置为3秒,但是当服务器不可用时,大约需要45秒来捕获错误。为什么CommandTimeout被忽略?
bool CheckDbConn()
{
try
{
using (MyDB db=new MyDB(GetCustomConnString()))
{
db.Database.CommandTimeout = 3;
var someEntity = db.SomeSet.FirstOrDefault();
return true; // connection ok
}
}
catch (Exception ex)
{
// catches error after 45 seconds
return false; // error connecting server;
}
}
答案 0 :(得分:0)
您需要的是ConnectionTimeout
CommandTimeout,如果用于限制命令的运行时间。
答案 1 :(得分:0)
只需完成贾斯汀的答案,
此属性为只读,您必须将其添加到conn字符串中
static private string GetConnectionString()
{
return "Data Source=(local);Initial Catalog=AdventureWorks;"
+ "Integrated Security=SSPI;Connection Timeout=30";
}