【问题标题】:'DefaultAppPool' suffered a fatal communication error with the World Wide Web Publishing Service“DefaultAppPool”与万维网发布服务发生致命通信错误
【发布时间】:2011-07-24 16:01:41
【问题描述】:

我每次访问该站点时都会收到事件日志条目:

事件类型:错误 事件源:VsJITDebugger 事件类别:无 事件 ID:4096 用户:NT AUTHORITY\NETWORK SERVICE 电脑:COMPUTER-02 描述: w3wp.exe [2908] 中出现未处理的 Microsoft .NET Framework 异常。即时调试此异常失败并出现以下错误:调试器无法启动,因为没有用户登录。 查看文档索引以获取“即时调试、错误”以获取更多信息。 数据: 0000: 02 00 5c 80 ..\

系统日志

事件类型:错误 事件来源:W3SVC 事件类别:无 事件编号:1002 日期:28/03/2011 时间:17:49:28 用户:不适用 电脑:COMPUTER-02 描述: 由于为该应用程序池提供服务的进程中出现一系列故障,应用程序池“DefaultAppPool”被自动禁用。

应用程序日志

事件类型:警告 事件来源:W3SVC 事件类别:无 事件编号:1011 日期:28/03/2011 时间:17:49:28 用户:不适用 电脑:COMPUTER-02 描述: 为应用程序池“DefaultAppPool”提供服务的进程与万维网发布服务发生了致命的通信错误。进程 ID 为“3724”。数据字段包含错误号。 数据: 0000: 6d 00 07 80 米..

我也听从了Microsoft's Support site 的建议,但运气不好。网络服务帐户访问注册表没有任何问题。

我需要在 IIS6(而不是 IIS Express 7.5)中运行该站点,因为该站点运行 ASP 以及 ASP.NET 我需要通配符映射以在 ASP 中进行身份验证。

我已经完全没有想法了,因为该网站在 ASP.NET 3.5 (CLR v2...) 中运行良好,但这次升级完全被调试搞砸了。

任何帮助将不胜感激。

【问题讨论】:

    标签: visual-studio-2010 debugging iis-6 windbg application-pool


    【解决方案1】:

    您将需要 WinDbg(Windows 调试工具)和 DebugDiag。

    1. 安装 DebugDiag 和 WinDbg
    2. 确保已将相关框架的 SOS.dll 复制到 WinDbg 目录。
    3. 添加规则以捕获 IIS/COM+ 进程
    4. 在第一次出现异常时,创建一个完整的用户转储。限制为 10
    5. 打开网站并查看 DebugDiag,您应该会发现它开始进行完整转储。
    6. 一旦您有一些内存转储,加载 WinDbg 并单击文件->打开崩溃转储并加载其中一个内存转储。
    7. 输入.load sos
    8. 输入!clrstack
    9. 您将获得错误的堆栈跟踪,例如:
    0:016> .load sos 0:016> !clrstack 未加载 clr.dll 的 PDB 符号 操作系统线程 ID:0xa60 (16) 子 SP IP 呼叫站点 01d2eb5c 7c81a251 [HelperMethodFrame: 01d2eb5c] System.Diagnostics.Debugger.LaunchInternal() 01d2ebac 7a0e0166 System.Diagnostics.Debugger.Launch()*** 警告:无法验证 mscorlib.ni.dll 的校验和 *** 错误:模块加载完成,但无法为 mscorlib.ni.dll 加载符号 01d2ebd8 04470176 ebiz.Global.Application_Start(System.Object, System.EventArgs) 01d2f1f8 791421bb [DebuggerU2MCatchHandlerFrame: 01d2f1f8] 01d2f1c4 791421bb [自定义GCFrame:01d2f1c4] 01d2f198 791421bb [GCFrame: 01d2f198] 01d2f17c 791421bb [GCFrame: 01d2f17c] 01d2f3a0 791421bb [HelperMethodFrame_PROTECTOBJ: 01d2f3a0] System.RuntimeMethodHandle._InvokeMethodFast(System.IRuntimeMethodInfo, System.Object, System.Object[], System.SignatureStruct ByRef, System.Reflection.MethodAttributes, System.RuntimeType) 01d2f41c 79b3d689 System.RuntimeMethodHandle.InvokeMethodFast(System.IRuntimeMethodInfo,System.Object,System.Object[],System.Signature,System.Reflection.MethodAttributes,System.RuntimeType) 01d2f470 79b3d37c System.Reflection.RuntimeMethodInfo.Invoke(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo,布尔值) 01d2f4ac 79b3bfed System.Reflection.RuntimeMethodInfo.Invoke(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo) 01d2f4d0 79b43284 System.Reflection.MethodBase.Invoke(System.Object,System.Object[]) 01d2f4dc 67894f4d System.Web.HttpApplication.InvokeMethodWithAssert(System.Reflection.MethodInfo, Int32, System.Object, System.EventArgs)*** 警告:无法验证 System.Web.ni.dll 的校验和 *** 错误:模块加载完成,但无法为 System.Web.ni.dll 加载符号 01d2f500 678951cb System.Web.HttpApplication.ProcessSpecialRequest(System.Web.HttpContext,System.Reflection.MethodInfo,Int32,System.Object,System.EventArgs,System.Web.SessionState.HttpSessionState) 01d2f550 67b34175 System.Web.HttpApplicationFactory.FireApplicationOnStart(System.Web.HttpContext) 01d2f564 672bfe1c System.Web.HttpApplicationFactory.EnsureAppStartCalled(System.Web.HttpContext) 01d2f59c 672bfd3d System.Web.HttpApplicationFactory.GetApplicationInstance(System.Web.HttpContext) 01d2f5ac 672fbf28 System.Web.HttpRuntime.ProcessRequestInternal(System.Web.HttpWorkerRequest) 01d2f5e0 672fbccd System.Web.HttpRuntime.ProcessRequestNoDemand(System.Web.HttpWorkerRequest) 01d2f5f0 672fb2cd System.Web.Hosting.ISAPIRuntime.ProcessRequest(IntPtr,Int32) 01d2f5f4 6791c30c [InlinedCallFrame: 01d2f5f4] 01d2f668 6791c30c DomainNeutralILStubClass.IL_STUB_COMtoCLR(Int32,Int32,IntPtr) 01d2f7fc 791425a1 [GCFrame: 01d2f7fc] 01d2f86c 791425a1 [ContextTransitionFrame: 01d2f86c] 01d2f8a0 791425a1 [GCFrame: 01d2f8a0] 01d2f9f8 791425a1 [ComMethodFrame: 01d2f9f8]

    无论如何,对我来说,您可以看到Debugger.Launch() 就在顶部,并且看哪,我的代码包含它。如果它是您的第一行,那么 IIS 似乎根本不喜欢它代码!

    【讨论】:

      【解决方案2】:

      如果您不熟悉 WinDbg,您仍然可以从转储中提取大量信息。您已经拥有由 DebugDiag 创建的转储。启动 VS,文件 -> 打开 -> 文件 (Ctrl + O),选择 .dmp 文件。 VS2010 将显示几个调试选项——混合模式或仅本机。选择混合模式,打开线程窗口,识别抛出异常的线程,查看调用堆栈。有时你会得到线程的局部变量,但不要指望太多,因为数据可能不正确。

      【讨论】:

        猜你喜欢
        • 2019-12-14
        • 1970-01-01
        • 1970-01-01
        • 2018-05-03
        • 1970-01-01
        • 1970-01-01
        • 2016-03-03
        • 2022-01-20
        • 2016-03-03
        相关资源
        最近更新 更多