gpt4 book ai didi

c# - 为什么 OledbConnection 打开后 session 超时

转载 作者:行者123 更新时间:2023-11-30 23:08:37 27 4
gpt4 key购买 nike

我正在将 OledbConnection 调用到 Microsoft Access 数据库。调用该方法没有问题,还可以检索必要的数据。

我不知道在那个方法之后 session 会自动超时。并转到登录页面。为什么?我失去了一整天的调试和发现问题。

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=;";

最佳答案

通常在 IIS/ASP.NET 环境中,应用程序以 MEDIUM TRUST settings and not with FULL TRUST 运行.这意味着您的代码无法 Access 位于站点根目录之外的文件系统的任何部分。

为了解决应用程序需要一个可以读写的地方而不用担心太多安全限制的问题,已经采用了约定。
约定是在站点根目录下有一个名为 APP_DATA 的子文件夹,其中运行您的应用程序的 ASP.NET 服务的用户 (IUSR) 具有读/写权限。在这里您可以放置​​您的数据库或其他读/写文件。创建子文件夹来存储不同类型的文档等。

因此,只要按照约定将数据库移动到该文件夹​​中,就可以解决您的问题。或者,在验证此类移动的安全后果后,强制您的站点到 run in FULL TRUST .

当然,如果您必须手动创建 APP_DATA 文件夹,请确保还为 IIS 用户设置了正确的权限。

关于c# - 为什么 OledbConnection 打开后 session 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46403652/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com