繁体   English   中英

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

[英]Keep getting “Login failed for user IIS APPPOOL\DefaultAppPool” no matter what I do

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

这是我第一次在这个网络中试用它,而我之前没有使用VS2012,SQL Server 2012 Express,Windows 7

我做了什么:

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

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

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

拉斐尔

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

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

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

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

欲了解更多信息,请访问以下链接: https//stackoverflow.com/a/8853386/1676736

更改连接字符串。

例如:

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

这解决了错误。

所有其他答案对我不起作用.....

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

当我们尝试使用url登录方法(“ 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'

就我而言,我不得不改变我的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 ,所以我必须在connectionString显式地给出我的数据库的链接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM