4

部署我的 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);
        }
    }

我使用相同的 SQL Management Studio 访问数据库,mylogin并使用脚本mypass创建了数据库。Market但是在站点中,无法访问数据库。

我怎样才能找到它的原因?

4

2 回答 2

1

问题是这段代码DropCreateDatabaseIfModelChanges<Market>

public class MarketInitializer: DropCreateDatabaseIfModelChanges<Market>
    {
        protected override void Seed(Market context)
        {
            base.Seed(context);
        }
    }

模型在某个时候发生了变化,因此它试图删除数据库并重新创建它

于 2013-08-14T12:12:00.367 回答
1

有时会发生这种情况,因为您在本地 SQL Server 实例上没有系统管理员角色。我找到了有用的文章,您可以在其中下载脚本命令并安装它。您将被要求提供 SQLEXPRESS 名称或实例名称,您只需输入“SQLEXPRESS”并输入即可。而已。它会将您添加到本地服务器实例的系统管理员角色。

下载命令: http: //archive.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName =addselftosqlsysadmin&DownloadId=9198

如果它不适合你,请告诉我。

于 2013-10-24T11:38:00.570 回答