1

我有自己的盒子,所以我可以完全控制服务器。我正在使用 SQL Server 2008。我运行应用程序希望它会创建数据库,但我不断收到错误消息:

无法打开登录请求的数据库“blah blah”。登录失败。用户 'IIS APPPOOL\appname' 登录失败。

我试图进入 SSMS 并添加用户 IISAPPPOOL\appname 但这没有任何帮助。这是我的 web.config 中的连接字符串

<add name="Context" 
     connectionString="Data Source=Server\DbInstance;Initial Catalog=blahblah;Integrated Security=True;User ID=myUser;Password=myPassword" 
     providerName="System.Data.SqlClient" />

以及我的 global.asax 中的初始化程序

Database.SetInitializer(new MigrateDatabaseToLatestVersion<Context, Configuration>());

应用程序失败是因为代码首先失败并且没有创建数据库还是因为权限问题?如果我需要提供更具体的信息,我可以。

4

1 回答 1

0

好吧,您遇到的一个问题是:您在连接字符串中同时 Integrated Security=True定义(即 Windows 身份验证)和User ID=...;Password=....(即 SQL Server 身份验证)。

选择其中之一 - 但不能同时选择两者!

如果您确实将该用户myUser指定为 SQL Server 中的登录名,那么现在将不会使用该用户,因为该Integrated Security=True设置将占上风...

因此,将您的连接字符串更改为:

<add name="Context" 
     connectionString="Data Source=Server\DbInstance;Initial Catalog=blahblah;User ID=myUser;Password=myPassword" 
     providerName="System.Data.SqlClient" />

看看现在,你的myUser用户是否会被使用。

于 2013-09-14T07:00:34.823 回答