【问题标题】:Application pools won't run应用程序池不会运行
【发布时间】:2013-04-24 19:19:59
【问题描述】:

我的服务层中有两台服务器位于负载均衡器后面。它们应该是相同的 - IIS 设置相同,AppFabric(保持两个服务预热),在服务帐户或应用程序池标识下运行的应用程序池。在一台服务器上,一切正常。在另一台服务器上,我的三个应用程序池(AppFabric 正在预热的两个应用程序池,在服务帐户下,一个只是标准应用程序池,没有对默认设置进行任何更改)几乎在我启动它们时停止运行(有时在第一次请求时)。

每次尝试启动其中一个应用程序池时,我都会在应用程序日志中收到以下五个错误:

在处理配置路径的托管应用程序服务自动启动时出错:“MACHINE/WEBROOT/APPHOST/Site/App”。返回的错误信息是:''。工作进程将被标记为不健康并被关闭。数据字段包含错误代码。

引用的错误代码是80070005

这实际上是针对同一个站点/应用程序而不管是否启动了应用程序池(尽管在重新创建应用程序池后它可能会发生变化)。

在系统日志中,我在出错前五次收到以下警告 (Application pool 'AppPool' is being automatically disabled due to a series of failures in the process(es) serving that application pool.):

为应用程序池“AppPool”提供服务的进程在应用程序预加载或服务加载期间报告失败。进程 ID 为“2396”。请确保正确配置应用程序池中的所有应用程序预加载或服务设置。数据字段包含错误号。

引用的错误代码是80004005

这里的 AppPool 是正在启动的。

我尝试过重新创建;我试过卸载 AppFabric(但我们需要它,所以重新安装了,还是不行)。我没主意了。有什么建议吗?

编辑:我尝试从工作服务器复制 applicationHost.config,但这也不起作用..

EDIT2:其中一个应用程序池在真实用户帐户下运行时有效,但在 ApplicationPoolIdentity 下运行时无效......

(此外,我们遇到了一个问题,即网站在 2.0 下运行,而应用程序在 4.0 下运行。这可能已经解决了作为服务帐户运行的问题。)

【问题讨论】:

  • 您是否尝试在损坏的服务器上运行内存测试/磁盘检查?

标签: iis iis-7


【解决方案1】:

我只是在同一个问题上挣扎了几个小时,然后发现了另一个罪魁祸首。

我在最近的一次提交中向我的 Web.config 添加了一个新的配置部分。我还将这部分添加到 Puppet 用于在部署时生成自定义 Web.config 的单独 ERB 文件中。在此模板文件中,我添加了新部分,但忘记在 <configSections> 中包含其声明。

一旦我将声明添加到模板中,我们应用的测试虚拟机就能够再次启动,并且此错误消失了。

【讨论】:

  • 这是一个很好的帮助,让我想到了对我的 Web.config 文件的任何更改。我基本上在 Web.config 中定义了一个重复的 标记,这导致应用程序池无法启动。这是一个棘手的错误,因为应用程序池无法启动,因此您无法在代码中进行任何错误处理/测试。非常感谢。
【解决方案2】:

虽然应用程序的应用程序池是 4.0,但网站本身的应用程序池是 2.0,这导致了一些问题。我们在不同的驱动器上也有 inetpub,我们必须授予对 SERVER\Users 的访问权限。

【讨论】:

    猜你喜欢
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 2017-08-10
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    相关资源
    最近更新 更多