3

这是我的连接字符串:如何配置SQL Server与ASP.NET MVC一起使用Windows身份验证?

<add name="MyDb" providerName="System.Data.SqlClient" connectionString="Server=localhost;Data Source=.\MSSQLSERVER;Initial Catalog=MyDb;Integrated security=SSPI;" /> 

它的工作我的本地机器上就好了,但我的服务器上,部署我的应用程序后,它不想工作,它给了我这个错误:

[SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 25 - Connection string is not valid)]

当我更改连接字符串以使用帐户凭证-sa,它连接的很好,所以我确切地知道这是错误的sql服务器配置的问题。

所以我的问题是:我已经新安装的SQL Server实例,如何配置它,所以它允许Windows身份验证我的asp.net MVC应用程序?

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

回答

4

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

  1. 开放SQLSERVER实例
  2. 扩大安全性,选择“新建登录”
  3. 集“IIS APPPOOL \默认应用”为登录名,给从“账户DB访问用户映射“选项卡。
  4. 点击确定即可创建。

希望这有助于。

+0

这是什么,谢谢。无论如何,我像你说的那样做了,并且有叫'IIS APPPOOL \ DefaultAppPool'的用户。我也改变了我的应用程序从defaultapppool运行(btw defaultapppool被列为本地服务)。但我仍然得到同样的错误。我现在能做什么? :/ – ojek 2013-02-17 17:56:49

0

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

你可以SQL Server Management Studio中:

  1. In SQL Server Management Studio Object Explorer, right-click the server, and then click Properties.
  2. On the Security page, under Server authentication, select the new server authentication mode, and then click OK.
  3. In the SQL Server Management Studio dialog box, click OK to acknowledge the requirement to restart SQL Server.
  4. In Object Explorer, right-click your server, and then click Restart. If SQL Server Agent is running, it must also be restarted.
+0

是的,我已启用Windows身份验证在那里。我想我的问题是,因为我没有添加任何登录?我是否需要添加到我的登录网络服务或类似的东西? – ojek 2013-02-17 16:28:27

+0

是的,您需要添加一个与您需要访问的数据库关联的帐户。然后,您应该让您的Web应用程序的应用程序池在相同的帐户下执行。与服务器相关的问题更适合http://serverfault.com,所以如果你需要更多的细节,不要犹豫,在那里发布你的问题。 StackOverflow是一个编程相关的问题,这里没有服务器配置问题。 – 2013-02-17 16:29:03

0

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

User.Identity.Name 

如果它是一个本地只占像“网络服务”,你必须更改帐户。如果您在IIS中运行,则该帐户是应用程序池的一个属性。

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

+0

为NetworkService设置应用程序池。我添加了登录到我的sql服务器称为网络服务(它被列为NT AUTHORITY \ NETWORK SERVICE)并授予它管理员权限。仍然没有结果。 – ojek 2013-02-17 16:50:23

+0

每台服务器都有自己的“网络服务”。所以只有当SQL Server与Web服务器位于同一台服务器上时才有效。尝试配置一个不同的(或新的)帐户。 – Andomar 2013-02-17 16:56:38

+0

是的,我的网络服务器和sql server在同一台机器上。 – ojek 2013-02-17 17:00:07

相关问题