我已经构建了一个ASP.NET MVC 2网站,我使用IIS 7.0与Rackspace Cloud Server一起托管。如何设置SQL Server/IIS 7.0以允许ASP.NET MVC网站访问数据库?
当我尝试在服务器上使用IIS 7.0在localhost下测试网站时,我收到一个错误页面。这来自于SQL日志(我使用SQL网络版):
Error: 18456, Severity: 14, State: 11
Login failed for user 'IIS APPPOOL\DefaultAppPool'. Reason: Token-based server access validation failed with an infrastructure error. Check for previous errors. [CLIENT: <local machine>]
我的网站作品在我的家用电脑精做的问题是事做与数据库的连接。
已经研究了错误消息代码,它表明我有一个有效的数据库登录但服务器访问失败。我做了解决此阅读各种论坛和这里栈是什么,我都试过了,没有一个已经解决了这个问题(包括计算器/ serverfault。):
使用SQL Server身份验证设置新的登录。我在SQL中创建了一个新的登录名并赋予我的数据库正确的访问权限。我在web配置中使用了以下连接字符串:
Data Source = myServer; Initial Catalog = myDB; User Id = myUsername; Password = myPassword;
创建新登录为
IIS APPPOOL\DefaultAppPool
。我使用正确的访问权限在SQL中创建了新的登录并使用了Windows身份验证。连接字符串如下:Server = myServer; Database = myDataBase; Trusted_Connection = True;
使用现有网络登录
NT AUTHORITY\NETWORK SERVICE
。我用正确的访问权限将这个用户映射到我的数据库。连接字符串如下:Server = myServer; Database = myDataBase; Trusted_Connection = True;
这些问题是我在网上阅读材料时的主要选项。最后,这里的一些其他的东西,可能会有所帮助:
- 设置SQL来以管理员身份运行没有解决不了的问题
- 关闭
UAC
没有帮助 - 我的应用程序池使用ApplicationPoolIdentity(最好出于安全原因)
总之,我的网站不会启动,因为它无法从数据库中获取对象,因此引发错误。问题在于对服务器的访问权限设置不正确。我无法弄清楚我需要什么配置的SQL登录/连接字符串/域访问权限。
这让我烦了3个星期 - 请问您可以腾出5分钟来帮助我吗?
你能发布你当前的连接字符串吗?我假设你正在连接集成安全性,因此AppPoolIdentity用于连接到SQL Server。此外,请提及您的Web和SQL Server是否在Active Directory安装中运行。 –
使用:'Source = SetsOfSix;初始目录= SetsOfSix;集成安全= SSPI;'。让我去检查活动目录设置的问题... –
在IIS上没有安装“Active Directory域服务”。如何检查Web和sql服务器是否在Active Directoty安装中运行? –