DB First,MVC 4,CREATE DATABASE 权限在数据库中被拒绝 'master'

DB First, MVC 4, CREATE DATABASE permission denied in database 'master'

当我发布我的网站时,我的服务器上总是出现这个错误 - 即使没有更改数据库模型。

该网站是运行宁好的地方。

我正在使用数据库优先方法。

如果我在服务器上删除站点中的所有文件,请在服务器上恢复我的本地数据库。从 VS 发布站点。之后有时会 运行 正常。

如果我随后在数据库 CONTENT 中进行一些更改,我将收到错误消息。

我不想在服务器上创建任何 database/tables - 只需禁用需要创建的代码部分。在 MVC3 中,我们有这个 DropCreateDatabaseIfModelChanges,但我在当前站点中看不到任何内容。

我能做什么?

我的连接字符串:

    <connectionStrings>
     <add name="GoBagHomeComEntities"     connectionString="metadata=res://*/Models.GoBagHomeModel.csdl|res://*/Models.GoBagHomeModel.ssdl|res://*/Models.GoBagHomeModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\sqlexpress;initial catalog=GoBagHomeCom;Persist Security Info=True;User ID=xx;Password=xxxx;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient"
      xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
     </connectionStrings>

还有我的 dbcontext

public partial class GoBagHomeComEntities : DbContext
{
    public GoBagHomeComEntities()
        : base("name=GoBagHomeComEntities")
    {
    }

检查 dbo.__MigrationHistory 如果你有记录意味着 EF 正在尝试迁移,所以截断 table 并重试。

如果重复相同的事情,那么您可能需要检查它作为设置迁移的 EF 天气。

看看这个答案 this,你需要在 web.config 文件中有 连接字符串 ,我认为这是唯一遗漏的东西.

看来问题解决了:)

我确定 Owin 是坏人 - 我只是用它来创建身份验证 cookie。与表格无关。

删除站点上所有与 Owin 相关的代码后,它是 运行。

如果您对数据库进行了任何更改,您应该按照以下步骤操作:

  1. 更新.edmx 文件。要更新它,请在打开时双击 .edmx,请右键单击此文件的空白 space 和 select "update model from database".
  2. 保存并关闭文件。
  3. 构建项目。
  4. 从 bin 文件夹复制 .dll 文件并将其粘贴到您托管应用程序的位置。