【发布时间】:2017-09-25 11:02:22
【问题描述】:
我将OledbConnection 呼叫到Microsoft Access 数据库。调用该方法并检索必要的数据没有问题。
我不知道在该方法之后会话会自动超时。并进入登录页面。为什么? 我已经失去了一整天的调试和发现问题。
string strQuery = "select count(LOC1) as LOC1 from shrmwise";
DataTable dt = new DataTable();
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
connection.Open();
using (OleDbCommand command = new OleDbCommand(strQuery, connection))
{
try
{
OleDbDataReader reader = command.ExecuteReader();
dt.Load(reader);
reader.Close();
}
catch (Exception ex)
{
throw ex;
//Console.WriteLine(ex.Message);
}
finally
{
connection.Close();
}
return dt;
}
}
已编辑
如果上面的方法调用被注释,则不会超时。
它不会在本地主机上超时,而是在实时服务器上。
我的connectionString如下
string connectionString =
@"Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data Source=E:\Data\MyDatabase.mdb;" +
@"User Id=;Password=;";
【问题讨论】:
-
您是否有权访问服务器上的文件夹 E:\Data\MyDatabase.mdb?请记住,您需要向建立连接的用户授予对该文件夹的读/写权限(如果是 ASP.NET,则为 IUSR),否则访问将永远无法正常工作。如果该文件夹位于您站点的根目录之外,您需要完全信任您的 IIS 站点才能访问该文件夹。
-
是的,所有人都获得了完全许可
-
如果您将该数据库移动到您网站的 APP_DATA 文件夹中,您还有问题吗? (当然相应地改变 conn 字符串)
-
嗨@Steve,很好的发现,移动到APP_DATA后,它可以工作,没有超时。非常感谢,我已经失去了3天。请回复您的帖子,以便我将赏金分配给您
标签: c# asp.net sql-server ms-access iis