我们正在开发一个使用MVC 5,EF 6& SQL Server 2008.我们正在尝试将其部署在运行Windows Server 2008 R2的测试服务器“ServerX”上。 ServerX处理IIS和SQL Server。应用程序数据库已在ServerX上创建。
如果我在我的开发机器上的Visual Studio中运行应用程序,并且web.config连接字符串指向ServerX上的数据库,则应用程序正常工作,并且可以正常连接到数据库。
但是当我将Web应用程序部署到ServerX(使用文件系统部署方法)时,应用程序无法连接到数据库。该应用程序最初加载页面正常,但它的第一次数据库调用引发错误:
在数据库'master'中拒绝CREATE DATABASE权限。
现在我们在连接字符串中使用SQL Server登录。它具有应用程序数据库的db_owner角色。连接字符串将(先前创建的)app数据库指定为Initial Catalog。同样,当应用程序从我的开发机器运行时,完全相同的连接字符串工作正常。 Web应用程序按预期加载和提取数据而没有错误。
任何疑难解答的想法都将非常受欢迎。我们一直在网上寻找答案,但迄今为止没有任何答案。
以下是编辑过的连接字符串:
Data Source=ServerX;Initial Catalog=AppTest;Persist Security Info=False;User ID=AppAdmin;Password=secret;MultipleActiveResultSets=True"
绝望之下,我们还在dbcontext构造函数方法中添加了一段代码,以便向文本文件写入它正在使用的连接字符串,实际上这是服务器上运行时使用的字符串。