代码之家  ›  专栏  ›  技术社区  ›  Shaun Austin

ASP.NET错误:“应用程序池的标识无效”

  •  36
  • Shaun Austin  · 技术社区  · 5 年前

    我的ASP.NET Web服务无法运行,因为应用程序池由于遇到身份危机而无法启动。

    我在应用程序池中使用的用户是域用户,它是本地管理员,它在IIS中,我授予它“作为操作系统权限的一部分”-没有。Nada。每次启动应用程序池失败。

    将用户添加到IIS WPG通常是缺少的,但我想还有其他东西。

    我尝试过的事情:

    • 向IIS添加用户
    • 将用户添加到本地管理组并添加“作为操作系统的一部分”权限。
    • Aspnet_Regis-乔治亚州
    • 重新启动…
    • 已检查密码
    • 已重新创建应用程序池并仅将我的应用程序分配给它

    附笔 如果我使用网络服务用户,一切都会正常工作——只是我的“自定义”用户出了问题。使用此用户登录(交互)可以正常工作。

    编辑:

    解决方案如中所述 the accepted answer (向应用程序池的标识用户添加“作为服务登录”权限)。

    我将为那些在尝试向域用户添加“作为服务登录”权限时遇到以下消息的用户添加以下消息,以供将来参考:

    “此设置与 运行Windows 2000服务的计算机 包装1或更早……”

    知道 这与Windows 2000无关 正是域的组策略阻止您将此权限分配给用户。

    15 回复  |  直到 6 年前
        1
  •  47
  •   Marc Gravell    15 年前

    您是否为帐户启用了“作为服务登录”?

    启动->控制面板->管理工具->本地安全策略->本地策略->用户权限分配->作为服务登录

    (确保您的帐户直接或间接位于此列表中;还建议您设置:从网络访问此计算机;拒绝本地登录;作为批处理作业登录)

    另外-确保帐户对支持网站/应用程序的文件系统具有“读取和执行”、“列出文件夹内容”和“读取”访问权限。

        2
  •  21
  •   erlando    15 年前

    尝试在中运行以下命令 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 文件夹:

    aspnet_regiis -ga <your_app_pool_user>
    

    有关将用户帐户配置为用作应用程序池标识的详细信息,请参阅以下文章:

    How To: Create a Service Account for an ASP.NET 2.0 Application (MSDN)

        3
  •  1
  •   Scott Hanselman    15 年前

    确保有一个名为c:\inetpub\temp\apppools的文件夹。如果没有,创建它。

        4
  •  1
  •   John Vottero    12 年前

    确保尝试访问应用程序池的用户帐户是 IIS_USRS AD.集团

        5
  •  0
  •   Wayne Hartman    15 年前

    发生的情况是,您可能正在使用不同版本的.NET Framework运行应用程序的池中运行应用程序。确保池中的所有应用程序都运行相同的版本。如果这些应用程序必须在与此不同的版本下运行,请创建一个新池并将您的应用程序添加到池中。

        6
  •  0
  •   Hooloovoo    15 年前

    我知道这很简单,但是你检查过密码吗?

        7
  •  0
  •   SiC    15 年前

    我以前有过这个问题,但无法追踪我同情的原因!一些可能有帮助的提示:

    • 检查密码是否正确(必须说对不起)
    • 使用没有其他网站运行的新应用程序池
    • 确保已运行aspnet_regiis-ga以设置所需权限

    如果其他都失败: -停止应用程序并删除应用程序池 -删除用户 -重新创建用户 -运行aspnet-regiis-ga -设置在此用户下运行的新应用程序池 -在此池下运行站点 在复制和粘贴复杂的密码的同时,我也在工作!

        8
  •  0
  •   James Conigliaro    15 年前

    您是否有将帐户从IIS组中取出的组策略?无论出于什么原因,当工作进程或服务需要在自定义帐户下运行时,我们经常会遇到这个(或类似的)问题。

        9
  •  0
  •   Shane Wealti    12 年前

    应用程序池用户帐户可能被锁定。

        10
  •  0
  •   Samantha Branham    11 年前

    另一种可能发生这种情况的方法是,如果您有CGI脚本。默认情况下,CGI脚本作为访问网站的Windows用户运行。要在特定帐户下运行CGI脚本,帐户需要额外步骤:

    IIS 7+

    转到inetmgr.exe中网站配置的cgi部分。将模拟设置为假。

    IIS 6

    以管理员身份运行以下命令:

    cd \inetpub\adminscripts
    cscript.exe Adsutil.vbs SET W3Svc/CreateProcessAsUser false
    

    下一步:让您的IT部门升级您所有的WS2003机器…

        11
  •  0
  •   Mr. TA    10 年前

    在遵循所有其他建议之后:

    1. 检查“作为服务登录”和“作为批处理作业登录”权限
    2. 检查文件夹权限,c:\windows\system32\inetsrv等。
    3. 在元数据库资源管理器中,检查IIS组的权限

    请记住重新启动IIS管理服务!

        12
  •  0
  •   M-Peror    10 年前

    另一个值得一提的小问题可能是,如果它是由管理员创建的新用户帐户,则可能应用默认策略,如“首次登录时更改密码”。如果是这种情况,并且尚未登录,这也将有效地阻止用户帐户运行您的服务。

    这不适用于OP的情况,因为他提到他可以使用该帐户交互登录,但我今天遇到了这个问题,其他人也可能遇到。

        13
  •  0
  •   Dave Van den Eynde    9 年前

    在我的情况下,问题是当域控制器与我的计算机发生问题时,我正在尝试使用域帐户。我刚用新版本的Windows(Windows 10)创建了一个新的虚拟机,并要求域管理员将其添加到域中,但我保留了与另一台计算机相同的主机名。

    此外,在事件查看器中,我发现了有关域控制器等的错误消息,这给了我一个线索。

    我必须从域中删除机器并再次添加,问题解决了。

        14
  •  0
  •   Kelly S. French    8 年前

    为了完整性发布一个简单的答案,因为我得到了相同的错误,但修复它的方法是在设置标识时使用用户名包含域。该用户是有效的域用户和服务器的用户,我手动将其添加到了IIS组,但在尝试将域添加为前缀(例如“us\svc myaccount”)之前没有骰子。

        15
  •  0
  •   Andy    6 年前

    在尝试了上述所有方法之后,没有任何效果,我注意到事件日志错误中的事件数据是80070700。在Google上搜索此错误时产生“试图登录,但网络登录服务没有启动。”

    我发现Netlogon服务没有启动,启动了它,宾果游戏开始了。希望有一天这能帮助别人