【发布时间】:2021-10-29 11:22:33
【问题描述】:
有一个 .Net (v4.6) WebAPI 具有用 VB6 编写的遗留中间件。在 COM+ 应用程序中,大多数中间件都是 COM DLL。 通常在用户很少的情况下,HTTPrequest 调用这些 COM DLL 中的任何一个,IIS 工作进程崩溃,现在这是不一致的。
事件日志有崩溃日志 由于为该应用程序池提供服务的进程中出现一系列故障,应用程序池“MyAppPool”被自动禁用。
发生了一种情况,表明此 COM+ 应用程序处于 状态不稳定或无法正常工作。断言失败: m_guidLogicalThread == GUID_NULL
服务器应用程序 ID:{56C23B4E-EF46-4C46-9ABA-8CFAA386745E} 服务器 应用实例 ID:{02DC69D6-B20F-4FB6-B1F2-B61AE32D5D51} 服务器 应用程序名称:GMT_PrimeSuite 此错误的严重性已 导致进程终止。 COM+ 服务内部信息: 文件:com\complus\src\comsvcs\jit\jit.cpp,行:31 Comsvcs.dll 文件 版本:ENU 2001.12.10530.18999 shp
以下是如何创建 COM 实例及其方法的示例代码。
dynamic comInstance = Activator.CreateInstance("Example.ISample");
comInstance.DoSomeWork();
【问题讨论】:
-
能否请您看一下this post,检查代码是否对您的问题有帮助?
-
@HuryShen 感谢您分享帖子,在问题上下文中,我们发现 10 行的 ADO.RecordSet 可以正常工作,并且对 ASP.Net 工作进程没有任何问题,但是当行超过 100 时,我们观察到有点慢,最终在 ~200 个请求之后 ASP.Net 工作进程崩溃。此外,这些 COM+ dll 是库激活,由于多个应用程序可访问性,我们无法使其成为服务器激活
标签: asp.net-mvc iis com vb6 com+