3

这是我的连接字符串:

<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 身份验证?

编辑:好吧,毕竟,我再次查看了我的连接字符串,并删除了 Data Source=.\MSSQLSERVER。它有帮助,现在一切正常,谢谢大家的帮助。

4

3 回答 3

6

如果您的应用程序在 IIS 的 DefaultAppPool 下运行,它使用“IIS APPPOOL\DefaultAppPool”帐户以集成模式访问 db。所以要在 SqlServer 中授予帐户:

  1. 打开 sqlserver 实例
  2. 展开安全性,选择“新登录”
  3. 为登录名设置“IIS APPPOOL\DefaultAppPool”,从“用户映射”选项卡中为该帐户授予数据库访问权限。
  4. 单击确定创建。

希望这可以帮助。

于 2013-02-17T17:46:16.317 回答
0

查看following article on MSDN说明如何更改 SQL Server 的身份验证模式的说明。

您可以 SQL Server 管理工作室:

  1. 在 SQL Server Management Studio 对象资源管理器中,右键单击服务器,然后单击“属性”。
  2. 在“安全”页面的“服务器身份验证”下,选择新的服务器身份验证模式,然后单击“确定”。
  3. 在 SQL Server Management Studio 对话框中,单击确定以确认重新启动 SQL Server 的要求。
  4. 在对象资源管理器中,右键单击您的服务器,然后单击重新启动。如果 SQL Server 代理正在运行,它也必须重新启动。
于 2013-02-17T16:26:11.477 回答
0

首先弄清楚您的网页在哪个 Windows 帐户下运行。例如,您可以打印以下值:

User.Identity.Name

如果它是“NETWORK SERVICE”之类的仅限本地帐户,则必须更改帐户。如果您在 IIS 中运行,则该帐户是应用程序池的属性。

知道帐户后,您可以在 SQL Server 中授予该帐户登录权限。

于 2013-02-17T16:48:23.310 回答