【问题标题】:GitHub Commit Error: Permission denied fatal: Unable to process path ~/App_Data/aspnet-MyProject.mdfGitHub 提交错误:权限被拒绝致命:无法处理路径 ~/App_Data/aspnet-MyProject.mdf
【发布时间】:2018-04-25 15:13:32
【问题描述】:

我正在尝试使用 Microsoft Visual Studio 2017 中的 GitHub 集成来提交对我的 ASP.Net MVC 项目的更新。

我正在处理代码优先迁移。在我之前的成功提交之后,我在 Visual Studio 的包管理器控制台上执行了以下命令:

PM> Enable-Migrations -ContextType ApplicationDbContext
PM> Add-Migration AccountNumberChanges
PM> Update-Database -Verbose

完成后,我尝试执行提交,但收到以下错误:

Git failed with a fatal error.
error: open("MyProject/App_Data/aspnet-MyProject-
20171110110346.mdf"): Permission denied
fatal: Unable to process path MyProject/App_Data/aspnet-
MyProject-20171110110346.mdf

以上命令已将 .mdf 文件添加到项目的 App_Data 文件夹中。

【问题讨论】:

  • 您是否尝试提交排除该 LED 文件?我的意思是你是否能够在项目中进行其他正常提交这样的代码更改?

标签: c# sql-server visual-studio github asp.net-mvc-5


【解决方案1】:

您不应该将 mdf 文件提交到 git - 它们是您数据库的数据文件。 git 可能会抱怨,因为该文件正在使用中,它需要读取权限才能将数据发送到存储库。最简单的解决方案是使用 git rm 将其从 git 中删除。例如,在命令行:

git rm MyProject/App_Data/aspnet- MyProject-20171110110346.mdf

【讨论】:

    【解决方案2】:

    如果您仍想将 mdf 文件添加到 git。 我也遇到了一些麻烦,所以我发现:

    如果您使用 Visual Studio 中的服务器资源管理器,只需在“服务器资源管理器”窗口中右键单击您的连接名称,然后单击关闭连接强>。

    【讨论】:

    • 我不相信。我得试试。但是您能否详细说明如果我关闭连接会发生什么?
    • @José Manuel Salazar 好吧,就我而言,一旦我完成了,我就能够成功提交它
    • 谢谢!这对我来说非常有效!对于仍然想知道的任何人,关闭连接就像“关闭文件”一样 - 您不会丢失任何数据,并且您可以在提交完成后立即重新打开(重新连接)。
    【解决方案3】:

    这可能会在将来对某人有所帮助。问题是您仍然将文件连接到服务器资源管理器中的本地数据库,并且该文件具有正在使用的句柄,这些句柄阻止了提交的发生。

    我实际上做的是

    1. 右键单击本地数据库或文件关联的数据库,然后

    2. 选择分离选项,以便它可以从 .mdf 或 .ldf 文件中释放任何句柄。

    PS:您可以在任何时候附加数据库,除非在提交时间范围内。

    一旦数据库被分离,提交工作没有任何问题。试试这个,它大部分时间都有效。

    【讨论】:

      【解决方案4】:

      这只是在我之前没有出现此问题的旧项目上全新安装 VS 2019 时发生的(也许我的忽略列表不正确)。有一个导致问题的 MySQL db.lock 文件。

      在团队资源管理器中,右键单击文件并选择“忽略此本地资源”。

      为快速修复而工作(不是说这是完美或正确的方法,但确实有效)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-29
        • 1970-01-01
        • 2023-02-08
        • 1970-01-01
        • 2015-10-08
        • 2019-10-30
        • 2022-11-11
        • 2013-12-09
        相关资源
        最近更新 更多