在部署我的MVC 4应用程序后,我尝试注册用户,得到这样的错误:
在数据库'master'中拒绝CREATE DATABASE权限。
连接字符串是:
<add name="Market" providerName="System.Data.SqlClient" connectionString="Data Source=endine.arvixe.com; Initial Catalog=Market; Uid=mylogin; Password=mypass; MultipleActiveResultSets=true; " />
和DbContext:
public class Market: DbContext
{
public Market()
{
Database.SetInitializer<Market>(new MarketInitializer());
}
}
public class MarketInitializer: DropCreateDatabaseIfModelChanges<Market>
{
protected override void Seed(Market context)
{
base.Seed(context);
}
}
我使用带有相同mylogin
和mypass
的SQL Management Studio访问数据库,使用脚本创建了Market
数据库。但在网站上,无法访问数据库。
我怎么能找到它的原因?
答案 0 :(得分:1)
问题是这段代码DropCreateDatabaseIfModelChanges<Market>
public class MarketInitializer: DropCreateDatabaseIfModelChanges<Market>
{
protected override void Seed(Market context)
{
base.Seed(context);
}
}
模型在某些时候发生了变化,因此它试图删除数据库并重新创建它
答案 1 :(得分:1)
有时会发生这种情况,因为您在本地SQL Server实例上没有sysadmin角色。我找到了有用的文章,你可以下载脚本命令并安装它。您将要求输入SQLEXPRESS名称或实例名称,只需编写“SQLEXPRESS”并输入即可。而已。它会将您添加到本地服务器实例的sysadmin角色。
下载命令如果它不适合你,请告诉我。