Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何配置SQL Server以使用ASP.NET MVC和windows身份验证?_Asp.net_Sql Server_Asp.net Mvc_Windows Server 2008_Connection String - Fatal编程技术网

如何配置SQL Server以使用ASP.NET MVC和windows身份验证?

如何配置SQL Server以使用ASP.NET MVC和windows身份验证?,asp.net,sql-server,asp.net-mvc,windows-server-2008,connection-string,Asp.net,Sql Server,Asp.net Mvc,Windows Server 2008,Connection String,这是我的连接字符串: <add name="MyDb" providerName="System.Data.SqlClient" connectionString="Server=localhost;Data Source=.\MSSQLSERVER;Initial Catalog=MyDb;Integrated security=SSPI;" /> 它在我的本地主机上运行正常,但在我的服务器上,在部署我的应用程序后,它不想工作,它给了我以下错误: [SqlException(

这是我的连接字符串:

<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-连接) 字符串无效)]

当我将连接字符串更改为使用account credentials-sa时,它连接得很好,所以我确切地知道这是sql server配置错误的问题

因此,我的问题是:我刚安装了sql server实例,如何配置它以允许asp.net mvc应用程序的windows身份验证

编辑:毕竟,我再次查看了我的连接字符串,并删除了数据源=。\MSSQLSERVER。这很有帮助,现在一切正常,谢谢大家的帮助。

看一看,它演示了如何更改SQL Server的身份验证模式

您可以使用SQL Server management studio:

  • 在SQL Server Management Studio对象资源管理器中,右键单击服务器,然后单击属性
  • 在“安全性”页面的“服务器身份验证”下,选择新的服务器身份验证模式,然后单击“确定”
  • 在SQL Server Management Studio对话框中,单击确定以确认重新启动SQL Server的要求
  • 在对象资源管理器中,右键单击服务器,然后单击重新启动。如果SQL Server代理正在运行,则还必须重新启动它

  • 首先找出您的网页运行的Windows帐户。例如,您可以打印以下值:

    User.Identity.Name
    
    如果是像“网络服务”这样的仅本地帐户,您必须更改该帐户。如果您在IIS中运行,则该帐户是应用程序池的一个属性


    了解该帐户后,可以在SQL Server中授予该帐户登录权限

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

  • 打开sqlserver实例
  • 展开安全性,选择“新建登录”
  • 为登录名设置“IIS APPPOOL\DefaultAppPool”,从“用户映射”选项卡为帐户授予db访问权限
  • 单击“确定”以创建

  • 希望这有帮助。

    是的,我在那里启用了windows auth。我想我的问题是,因为我没有添加任何登录?我是否需要添加到我的登录网络服务或类似的服务?是的,您需要添加一个与您需要访问的数据库关联的帐户。然后,您应该让web应用程序的应用程序池在同一帐户下执行。与服务器相关的问题更适合您,因此,如果您需要更多详细信息,请毫不犹豫地将您的问题发布到那里。StackOverflow是一个与编程相关的问题,此处没有服务器配置问题。已为NetworkService设置应用程序池。我向名为网络服务的sql server添加了登录名(它被列为NT AUTHORITY\network service),并授予它管理员权限。仍然没有结果。每个服务器都有自己的“网络服务”。因此,只有当SQL Server与Web服务器位于同一台服务器上时,这种方法才有效。尝试配置其他(或新)帐户。是的,我的Web服务器和sql server在同一台计算机上。呵呵,我将我的应用程序池更改为以我的管理员帐户运行,但它不起作用,正在发生什么事…“网络服务”是一个特殊帐户,可能有一些特殊的东西不起作用。我从未见过它被用来访问SQL Server。嗯,谢谢。不管怎样,我按照你说的做了,有一个名为
    iisapppool\DefaultAppPool
    的用户。我还将应用程序更改为从defaultapppool运行(顺便说一句,defaultapppool列为本地服务)。但我还是犯了同样的错误。我现在能做什么/