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="data source=.\sqlexpress;initial catalog=GoBagHomeCom;Persist Security Info=True;User ID=xx;Password=xxxx;MultipleActiveResultSets=True;App=EntityFramework"" 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 相关的代码后,它是 运行。
如果您对数据库进行了任何更改,您应该按照以下步骤操作:
- 更新.edmx 文件。要更新它,请在打开时双击 .edmx,请右键单击此文件的空白 space 和 select "update model from database".
- 保存并关闭文件。
- 构建项目。
- 从 bin 文件夹复制 .dll 文件并将其粘贴到您托管应用程序的位置。
当我发布我的网站时,我的服务器上总是出现这个错误 - 即使没有更改数据库模型。
该网站是运行宁好的地方。
我正在使用数据库优先方法。
如果我在服务器上删除站点中的所有文件,请在服务器上恢复我的本地数据库。从 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="data source=.\sqlexpress;initial catalog=GoBagHomeCom;Persist Security Info=True;User ID=xx;Password=xxxx;MultipleActiveResultSets=True;App=EntityFramework"" 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 相关的代码后,它是 运行。
如果您对数据库进行了任何更改,您应该按照以下步骤操作:
- 更新.edmx 文件。要更新它,请在打开时双击 .edmx,请右键单击此文件的空白 space 和 select "update model from database".
- 保存并关闭文件。
- 构建项目。
- 从 bin 文件夹复制 .dll 文件并将其粘贴到您托管应用程序的位置。