10

在我开始之前,我知道使用 iisreset 被认为是不好的做法,但无论如何都不应该发生这种情况。

我们有什么:

  • 在 Windows Server 2003 R2 上使用 IIS6 的几台机器(64 位和 32 位)

  • 多个 WCF Web 服务(.NET 运行时 2.0)部署在多个应用程序中,每个应用程序都有自己的应用程序池,每个应用程序池在其他 Windows 帐户下运行。

发生什么了:

  • 所有 appPools 启动,所有服务运行
  • IISReset 被执行(或机器重启)
  • IIS 重新启动,但并非所有应用程序池都正常启动。有时它们都会重新启动,有时一个或多个池无法启动。但是,它们可以手动启动。

这是“正常”的 iis 行为吗?我应该避免使用 iisreset,还是我们在 .NET 代码中做错了什么?

4

6 回答 6

11

应用程序池应在 iisreset 时重新启动,但它们确实在 iis 之外运行(在 COM+ 中)以确保可靠性。这意味着如果应用程序行为不端,它们可能不会回来,但 IIS 和其他应用程序会(应该)回来。所以是的,这是“正常的”。

PS 作为iisreset的骄傲用户,我也想“OUT”自己。不好的做法? 呸! ;D

于 2008-10-29T12:33:21.473 回答
5

IIS 在第一个请求到来之前不会立即启动 ASP.NET 工作进程 (w3wp.exe)。当您说“未启动”时,是否意味着您尝试访问某些 WCF Web 服务(在 iisreset 之后),并且您得到一个由于appPool无法启动导致Service Unavailable错误?您是否在事件日志中看到任何与 IIS W3SVC 相关的条目?

如果有,他们可能会告诉你为什么他们不能开始;把它们贴在这里。

于 2008-10-29T12:54:09.030 回答
4

原因:

在第一个请求进入之前,IIS 不会立即启动 ASP.NET 工作进程 (w3wp.exe)。当它显示“未启动”时,意味着您尝试访问某些 WCF Web 服务(在 iisreset 之后)由于对象持有一些而失败内存中的空间,并且由于无法启动 appPool,您会收到 Service Unavailable 错误。

解决方法:

使用以下命令创建批处理文件并安排它。

净停止 23svc

净停止 msftpsvc

网络停止 smtpsvc

净停止 PleskControlPanel

净停止 HTTPFilter

iisreset /重启

净启动 w3svc

网络启动 msftpsvc

网络启动 smtpsvc

网络启动 PleskControlPanel

net 启动 HTTPFilter

于 2010-01-28T05:21:11.153 回答
3

有类似的问题 - 重新启动 IIS 后,DefaultAppPool 已停止。

在应用程序事件日志中发现错误:

Windows 无法让您登录,因为您的配置文件无法加载。检查您是否已连接到网络,或者您的网络是否正常运行。如果此问题仍然存在,请联系您的网络管理员。
详细信息 - 访问被拒绝。

通过在 DefaultAppPool高级设置选项Load User Profile中设置为False来修复。

希望它可能有用。

于 2015-07-09T05:25:20.097 回答
0

在之前的支持角色中,我管理了几台运行各种 .NET 混乱的 IIS 服务器。当 AppPool 无法启动时,通常是登录凭据错误。

于 2008-10-29T12:57:51.673 回答
-1

通过应用程序池的高级设置重新设置身份(身份验证凭据)对我有用。

早些时候,我更改了我的活动目录密码,并且由于应用程序池已经在运行,它工作正常,直到我执行 IISRESET。

于 2021-04-13T06:07:48.313 回答