【问题标题】:Sqlite exception when insert and update query executes for ASP.NET Web API为 ASP.NET Web API 执行插入和更新查询时的 Sqlite 异常
【发布时间】:2019-11-06 05:43:46
【问题描述】:

我正在使用 Web API 连接到我的 sqlite 数据库以构建一个简单的 Winforms 应用程序。当我调用GET 方法时,它会执行一个选择查询并且工作正常。

当我调用POST 方法时,它执行插入查询并抛出异常

System.Data.SQLite.SQLiteException (0x800007FF):无法打开数据库文件。无法打开数据库文件

当我在本地测试时它工作正常。

有人对此有解决方案吗?

这适用于 IIS - Amazon VPS

我的数据库文件位于APP_DATA 目录下,具有读/写权限。

我的连接字符串是

Data Source=|DataDirectory|testdb.db;Version=3;Password=test123

【问题讨论】:

    标签: c# asp.net-mvc sqlite asp.net-web-api


    【解决方案1】:

    请将.db 文件的权限(ModifyWrite)授予App_Data 目录的Application Pool 用户的SQLite 文件夹。

    • You should also make sure that the ASP.Net application identity is allowed read/write access to the sqlite folder created 在您的 Web 应用程序的根目录下,因为数据将被读取以及写入此文件夹下的数据库文件。

      只需右键单击sqlite 文件夹并选择属性,然后选择安全 选项卡,如下面的屏幕截图所示。在大多数本地主机情况下,ASP.Net 标识是 IIS_IUSRS,它在下面突出显示。确保此用户对 sqlite 文件夹具有完全控制权。

    【讨论】:

    • 您能简单解释一下吗?因为我是 IIS 的新手
    • 您是从localhost 还是IIS 运行的?
    • sqlite 文件夹是什么?它存在于哪里?我在 app_data 目录中有数据库文件
    • 是的,请提供对app_data文件夹和.db文件内的访问权限
    • 根据您的建议,我在根目录下没有 sqlite 文件夹。我刚刚将 testdb.db 复制到 app_data 文件夹中。我会修改app_data目录权限并通知大家
    猜你喜欢
    • 1970-01-01
    • 2011-02-27
    • 2012-07-05
    • 2013-03-23
    • 2019-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多