关于asp.net:Keep得到“用户IIS APPPOOLDefaultAppPool登录失败”无论我做什么

Keep getting “Login failed for user IIS APPPOOLDefaultAppPool” no matter what I do

我正在尝试授予ASP NET应用程序对数据库的访问权限(这些只是测试而不是生产)。

这是我第一次在这个网络上尝试它,我以前没有用VS2012、SQL Server 2012 Express、Windows 7做过。

我所做的:

  • 我升级了我的SQL Server 2012 Express,因为VS2012第一次安装的版本不允许从IIS访问
  • 我发现我必须将SQL Server 2012 Express配置为接受远程连接,然后我跟踪了一个在这里找到的好博客。
  • 在SSME 2012中,我为所有数据库添加了一个新的登录名nt authorityetworkservice(我浏览了它,发现了"servicio de red",它代表networkservice,所以实际上是nt authorityservicio de red)。
  • 我将dbo设置为此登录的默认模式
  • 在"登录属性"下的"用户映射"中,我检查了我的数据库(我将其命名为miniNorthwind),然后检查了数据库角色成员中的db_datareader和db_datawriter for miniNorthwind。
  • 在Internet信息服务管理器中,我检查了DefaultAppPool标识是否为ApplicationPoolIdentity(它是默认设置)

但是我仍然会得到一个错误,说用户IIS AppPoolDefaultAppPool的登录失败,如果我将DefaultAppPool标识更改为NetworkService,那么对于用户NT AUTHORYservicio de red,错误更改为登录失败。

我不知道还能做什么。拜托,需要帮助。

拉斐尔


应用程序池->应用程序中使用的应用程序池->单击它,然后单击面板中的"高级设置"。找到"Identity"属性并将其更改为LocalSystem。


在IIS管理器中,将DefaultAppPool标识设置为NetworkService。尽管它可以工作,但您应该尝试使它与AppPoolIdentity一起工作,因为Windows7试图使它更安全。


When we tried to hit api login method for url
("http://api.xyz.com/v1/login") which we have registered in
'C:\Windows\System32\drivers\etc\hosts' file and hosted on IIS. Then we got an error Login failed for user 'IIS APPPOOL\DefaultAppPool'. Cannot open database" But after running below query on database the problem resolved.

1
2
3
4
5
6
7
8
9
10
11
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'

所有其他的答案对我来说都不管用……

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


您可以从iis7->application poolidity->advanced settings更改applicationpoolidity。

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

有关详细信息,请查看此链接:https://stackoverflow.com/a/8853386/1676736


更改连接字符串。

例如:

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

这就解决了错误。


在我的情况下,我必须将我的connectionString从:

1
 

到:

1
 

在部署了我的项目之后,我的connectionString被修改,因此删除了AttachDbFilename=|DataDirectory|\Database.mdf,所以我必须在connectionString中明确地给出数据库的链接。