代码之家  ›  专栏  ›  技术社区  ›  massimogentilini

如何诊断IIS致命通信错误问题

  •  14
  • massimogentilini  · 技术社区  · 18 年前

    我有一个客户在使用IIS和一个由我们开发的应用程序,在Asp.NET1.1条。周一,为应用程序池“xxxx”提供服务的进程连续4次与万维网发布服务发生致命通信错误。进程id为“yyyy”。数据字段包含错误号。出现。

    知道怎么诊断吗?这个 only link I've found 谈到安装低级调试工具,但在进行这种低级分析之前,我会知道是否有人有更好的主意或合适的替代方案。

    这个问题(从我所看到的)是客户环境中的一些问题,因为同一个应用程序安装在至少20或30个不同服务器上的其他客户站点上,并且这个问题不会发生。

    当做

    5 回复  |  直到 18 年前
        1
  •  4
  •   Manoj    14 年前

    应用池预设置中的IIS7 将“启用32位应用程序”设置为true 一切都很顺利

        2
  •  3
  •   AMIC MING Pak    12 年前

    我也犯了同样的错误,这里有更多的细节:

    正在运行:Windows Server 2003、IIS 6.0/ASP 3.0, 2.13 GHz,1 GB内存

    根据事件查看器,我每3分钟收到3次警告,

    有时我会犯错误:

    接下来是:

    由于为应用程序池提供服务的进程中出现一系列故障,应用程序池“DefaultAppPool”将被自动禁用。

    这将导致浏览网站时出现“服务不可用”消息。

    1. 我读到它可能是注册表访问权限,所以我安装了一个监视器并跟踪所有W3SVC访问被拒绝的错误和授予权限

    2. 我读到0x800703e9错误意味着堆栈溢出流,导致w3wp.exe文件崩溃,我应该安装一个调试工具,并尝试获得内存转储。

    我的网站正在进行一些数据挖掘,使服务器保持忙碌。

    1. 我不知道发生了什么。。。但我知道我的服务器会降低资源使用速度,所以我要升级并重新安装它,我确信它会解决问题。。。

    2. 这个问题一直都在发生,即使我的.net代码是空闲的,因此这是服务器的问题,而不是我的代码的问题。

    3. 我想第一次警告 为应用程序池提供服务的进程…“ 我认为0x800703e9错误(导致服务不可用)可能发生在应用程序池重新启动时,我猜它需要大量资源,而且由于我的计算机太慢,它得到的0x800703e9。。。如前所述,这是一个堆栈溢出流,但我认为这是由低资源造成的,而不是由无休止的递归造成的。

    4. 我认为微软声称的“注册表访问权”是个无稽之谈,但我并没有得到“服务不可用”的说法,因为它可能会有帮助(我仍然得到警告 ).

    希望这能帮助别人。。。

        3
  •  2
  •   DOK    17 年前

    This Microsoft support article 说:

    “如果NT AUTHORITY\NETWORK SERVICE帐户没有所需注册表项的权限,则可能会出现此问题。”

    解决方法是:“设置所需注册表项的权限,然后重新启动IIS 6.0。”

    链接的文章有这样做的步骤。

        4
  •  1
  •   Quintin Robinson    17 年前

    虽然不太可能,但这是个开始的地方。

    This 知识库文章中还有您描述的有关注册表权限的错误消息,客户端运行的是哪个版本的IIS?

        5
  •  0
  •   Alsin    15 年前