命令超时被忽略
Command Timeout being ignored
我使用这个函数来检查与数据库服务器的连接是否有效,我设置了 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;
}
}
- Entity Framework 6.2
你需要的是ConnectionTimeout
CommandTimeout 用于限制命令运行的时间。
只是为了完成 Justin 的回答,
这个属性是只读的,你必须把它添加到conn字符串
static private string GetConnectionString()
{
return "Data Source=(local);Initial Catalog=AdventureWorks;"
+ "Integrated Security=SSPI;Connection Timeout=30";
}
我使用这个函数来检查与数据库服务器的连接是否有效,我设置了 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;
}
}
- Entity Framework 6.2
你需要的是ConnectionTimeout
CommandTimeout 用于限制命令运行的时间。
只是为了完成 Justin 的回答,
这个属性是只读的,你必须把它添加到conn字符串
static private string GetConnectionString()
{
return "Data Source=(local);Initial Catalog=AdventureWorks;"
+ "Integrated Security=SSPI;Connection Timeout=30";
}