无法删除数据库'DB',因为它不存在或您没有权限

时间:2015-04-07 02:57:09

标签: c# database visual-studio-2013 entity-framework-6

我正和另外三名小组成员一起开展学校项目。我们使用Microsoft Visual Studio 2013,并使用Visual Studio Online作为版本控制。该项目与.Net MVC 5 EF6一起使用。我们小组遇到了一些我们无法弄清楚的麻烦。

这是我们遇到的问题。每当使用一个用户抓取最新版本控件更改并尝试使用或不使用调试运行项目时我们在浏览器中出现错误:

“无法删除数据库'DB',因为它不存在或您没有权限。”

如果我们添加迁移和更新数据库,我们可以使它工作。但这导致我们不得不经常迁移并引起很多麻烦。

我们无法弄清楚我们是否有混乱的设置或其他东西。我希望有人可以帮助我们解决这个问题,以便我们能够更有效地工作。

网站和数据库也在goDaddy上托管。

2 个答案:

答案 0 :(得分:3)

我敢打赌,您AutomaticMigrationsEnabled设置为true,否则您的应用程序不会因为您从TFS中提取最新版本而尝试对您的数据库执行任何操作。

此外,自动迁移不会尝试删除您的数据库,除非您设置了DropCreateDatabaseWhenModelChangesDropCreateDatabaseAlways数据库初始化程序。检查你的代码。你可能有。 Here's an article。请不要将它们投入生产。

此外,您的恶棍数据库初始化程序无法完成此任务,因为GoDaddy上的ASP.NET用户可能无权这样做。

我的建议:禁用AutomaticMigrationsEnabled。您是否使用add-migrationupdate-database手动迁移。 AutomaticMigrationsEnabled不是一个好习惯。它甚至被停止使用EF7。这应该可以解决你的问题。

答案 1 :(得分:0)

我不确定哪个更糟糕:使用GoDaddy作为ISP,或使用VSS / TFS进行版本控制:(

无论如何 - 有两条建议:

1)使用本地工作区(当您希望同步时,只需签入/签出更新):

https://msdn.microsoft.com/en-us/library/bb892960.aspx

2)在同步版本之前,查看VSO是否支持宏或脚本“终止所有”连接:

https://social.msdn.microsoft.com/Forums/en-US/b41a7376-d5cd-4339-92b3-158e88a96dff/how-can-i-kill-all-connections-of-users-to-my-sql-server-database-?forum=adodotnetentityframework