这是我的连接字符串:
<add name="MyDb" providerName="System.Data.SqlClient" connectionString="Server=localhost;Data Source=.MSSQLSERVER;Initial Catalog=MyDb;Integrated security=SSPI;" />
它在我的本地主机上运行得很好,但在我的服务器上,在部署我的应用程序后,它不想工作,它给了我这个错误:
[SqlException(0x80131904):与网络相关或特定于实例建立与SQL Server的连接时出错。这个找不到或无法访问服务器。验证实例名称正确,并且SQL Server已配置为允许远程连接。(提供程序:SQL网络接口,错误:25-连接字符串无效)]
当我将连接字符串更改为使用帐户凭据-sa时,它连接得很好,所以我完全知道这是sql server配置不好的问题。
所以我的问题是:我有一个新安装的sql server实例,我该如何配置它,以便它允许对我的asp.net mvc应用程序进行windows身份验证?
编辑:毕竟,我再次查看了我的连接字符串,并删除了数据源=。\MSSQLSERVER。它起了作用,现在一切都很好,谢谢你们的帮助。
如果您的应用程序在IIS的DefaultAppPool下运行,它将使用"IIS APPPOOL\DefaultAppPool"计数以集成模式访问数据库。因此,要在SqlServer:中授予帐户
- 打开sqlserver实例
- 展开安全性,选择"新登录"
- 设置"IIS APPPOOL\DefaultAppPool"作为登录名,从"用户映射"选项卡中为帐户提供数据库访问权限
- 单击"确定"创建
希望这能有所帮助。
看看following article on MSDN
,它说明了如何更改SQL Server的身份验证模式。
您可以使用SQL Server管理工作室:
- 在SQL Server Management Studio对象资源管理器中,右键单击服务器,然后单击"属性"
- 在"安全"页面的"服务器身份验证"下,选择新的服务器身份验证模式,然后单击"确定"
- 在SQL Server Management Studio对话框中,单击"确定"以确认重新启动SQL Server的要求
- 在对象资源管理器中,右键单击服务器,然后单击"重新启动"。如果SQL Server代理正在运行,则还必须重新启动它
首先弄清楚你的网页是在哪个Windows帐户下运行的。例如,您可以打印的值:
User.Identity.Name
如果是像"网络服务"这样的仅限本地的帐户,您必须更改该帐户。如果您在IIS中运行,则该帐户是应用程序池的属性。
一旦您了解了该帐户,就可以在SQL Server中授予该帐户登录权限。