无论我做什么,继续“登录用户IIS APPPOOL \ DefaultAppPool失败”

时间:2014-02-14 14:40:58

标签: asp.net iis-7.5 sql-server-2012-express

我正在尝试让ASP NET App访问数据库(这些只是测试而不是生产)。

这是我第一次在这个网络中试用它,我还没有用VS2012,SQL Server 2012 Express,Windows 7做过

我做了什么:

  • 我升级了我的Sql Server 2012 Express ,因为VS2012首次安装的版本是不允许从IIS访问的版本
  • 我发现我必须配置SQL Server 2012 Express才能接受远程连接,然后我按照了一个好的博客找到了 here
  • 在SSME 2012中,我为所有数据库添加了一个新登录 NT AUTHORITY \ NETWORKSERVICE (我浏览了它并发现了“Servicio de red”代表NETWORKSERVICE,所以它实际上是 NT AUTHORITY \ Servicio de red
  • 我将dbo设置为此登录的默认架构
  • 在登录属性下,在用户映射中,我检查了我的数据库(我将其命名为MiniNorthwind),然后在MiniNorthwind的数据库角色成员资格中检查了db_datareader和db_datawriter
  • 在Internet Information Services Manager中,我检查了DefaultAppPool标识是 ApplicationPoolIdentity (这是默认设置)

但我仍然收到一条错误消息,指出用户IIS APPPOOL \ DefaultAppPool 登录失败,如果我将DefaultAppPool标识更改为NetworkService,则错误更改为用户NT AUTHORITY登录失败\ Servicio de red

我不知道还能做什么。请在这里需要帮助。

圣拉斐尔

7 个答案:

答案 0 :(得分:8)

应用程序池 - >应用程序中使用的应用程序池 - >点击它,然后点击“提前设置”#39;在小组中。找到身份'属性并将其更改为localsystem。

答案 1 :(得分:4)

在IIS管理器中将DefaultAppPool标识设置为NetworkService。虽然它有效,但您应该尝试使其与AppPoolIdentity一起使用,因为Windows 7试图使其更安全

答案 2 :(得分:2)

您可以从IIS7更改ApplicationPoolIdentity - >应用程序池 - >高级设置。

ApplicationPoolIdentity 下,您会找到本地系统。这将使您的应用程序在NT AUTHORITY\SYSTEM下运行,这是默认情况下数据库的现有登录。

了解更多信息请看这个链接: https://stackoverflow.com/a/8853386/1676736

答案 3 :(得分:1)

更改连接字符串。

例如:

//< add name="CS"  connectionString="server=.;database=JackDB;user id=sa;password=ya;">

这解决了错误。

答案 4 :(得分:1)

所有其他答案都不适用于我.....

我需要做的是进入应用程序池,右键单击我的网站,进入高级设置并按身份(而不是默认的内置帐户应用程序池身份)进行身份验证,我需要设置一个自定义帐户并输入用户名和托管公司给我的密码。

答案 5 :(得分:1)

  

当我们尝试通过api登录方法获取网址时   (“ http://api.xyz.com/v1/login”,我们已在其中注册   “ C:\ Windows \ System32 \ drivers \ etc \ hosts ”文件,并托管在IIS上。然后,我们收到错误用户IIS APPPOOL \ DefaultAppPool登录失败。无法打开数据库”,但是在数据库上运行以下查询后,问题得以解决。

IF NOT EXISTS (SELECT name FROM sys.server_principals WHERE name = 'IIS APPPOOL\DefaultAppPool')
BEGIN
    CREATE LOGIN [IIS APPPOOL\DefaultAppPool] 
      FROM WINDOWS WITH DEFAULT_DATABASE=[master], 
      DEFAULT_LANGUAGE=[us_english]
END
GO
CREATE USER [WebDatabaseUser] 
  FOR LOGIN [IIS APPPOOL\DefaultAppPool]
GO
 EXEC sp_addrolemember 'db_owner', 'WebDatabaseUser'

答案 6 :(得分:0)

就我而言,我必须从{<1}}改变:

connectionString

到:

<add name="DatabaseName" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=HrAndPayroll;Integrated Security=True" providerName="System.Data.SqlClient" />

在我部署项目后,我的<add name="DatabaseName" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database.mdf;Initial Catalog=HrAndPayroll;Integrated Security=True" providerName="System.Data.SqlClient" /> 被修改,因此删除了connectionString,因此我必须在AttachDbFilename=|DataDirectory|\Database.mdf中明确地提供我的数据库链接。