【问题标题】:Failed to update database because it is read-only更新数据库失败,因为它是只读的
【发布时间】:2014-01-05 10:26:42
【问题描述】:

我已将我的网站设置为使用 ASP.NET 成员资格。尝试在我的开发机器上使用它时一切正常,但是当我将它放在网络服务器上并尝试登录时,我收到此错误:

"Failed to update database "C:\INETPUB\WWWROOT\APP_DATA\ASPNETDB.MDF" because the database is read-only. "

【问题讨论】:

  • 文件是只读的吗? asp用户帐号是否有权限写入数据库所在目录?

标签: c# .net asp.net


【解决方案1】:

感谢您的帮助。我刚刚找到了解决方案。在 App_Data ACL 中,我有两个条目:网络服务和 IIS_IUSRS。网络服务帐户具有完全权限,但 IIS_IUSRS 组只有读取权限。所以,我也给了 IIS_IUSRS 完整的权限,它工作了!

再次感谢。

【讨论】:

    【解决方案2】:

    修改权限后别忘了用“iisreset.exe”重启IIS

    【讨论】:

    • 这真的很有帮助,更改的权限仅在 IIS 重新启动时应用。
    【解决方案3】:

    检查磁盘上的那个文件。右键单击并转到属性。

    如果是只读文件,则需要使其可写。

    【讨论】:

    • 是的,该文件是只读的。它从其父文件夹 App_folder 继承此行为。有趣的是,当我尝试将 App_Data 文件夹从只读状态取消设置时,它又恢复为只读状态。不知道该怎么办...
    • 我有一个类似的问题没有注意到TFS在签入后将其设置为只读。
    【解决方案4】:

    如果文件是只读的,并且您似乎无法使用“属性”窗口对其进行更改,则必须使用命令提示符。

    Refer to this Support article at Microsoft.

    【讨论】:

      【解决方案5】:

      运行网站的用户帐户需要对该文件的写入权限。

      也有可能由于传输文件是只读的,需要设置为可写。

      【讨论】:

      • 我授予了网络服务帐户的完全权限。我正在使用 Windows 7
      • 你能发布连接字符串吗?
      • 您好,Oded,感谢您的帮助。我刚刚找到了解决方案。在 App_Data ACL 中,我有两个条目:网络服务和 IIS_IUSRS。网络服务帐户具有完全权限,但 IIS_IUSRS 组只有读取权限。所以,我也给了 IIS_IUSRS 完整的权限,它工作了!
      【解决方案6】:

      我按照阿提拉的回答发现: 1. IIS-ISUR、WebService 对 App_Data 和 mdf 都有充分的权限。 2. 但是有人叫“asp.net 4.0 pool”和“all users”没有,所以我允许了。

      然后 3.我按照user1280392的回答运行“iisreset”但失败了(但仍然请运行它)。

      然后我去了 IIS 管理器并这样做: 4. 点击服务器名称,点击右侧“重启”。 5.点击应用名称,点击右侧“重启”。

      没关系。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-14
        • 2011-08-08
        • 2014-06-09
        • 2011-11-09
        相关资源
        最近更新 更多