我们有一个在 .Net 框架 4.0 上运行的 ASP.Net Web 应用程序。
建筑就像,
.Net 模块 --> VB6 COM+ 数据对象 --> VB6 COM+ 计算模块 --> 第 3 方 COM+ Finance Factory(已安装 COM)。
最终用户使用此应用程序通过收集客户详细信息、车辆详细信息、财务详细信息并通过单击计算按钮计算多个参数来创建合同,然后将所有数据提交到另一个系统。
问题:在计算交易时(点击交易上的计算按钮)间歇性地抛出“内存不足”错误,并且计算未成功完成。这会影响业务。我们发现它在 VB6 COM+ 计算模块 -> 在 Initialize 方法中被抛出。
此方法初始化第三方(已安装)COM 对象并以 xml 格式(预定义)提供计算所需的数据,立即获取响应并结束子程序。
我们知道这个错误只发生在这个方法内部,并且不确定是哪个语句导致了这个。而这仅发生在生产环境中。无法复制其他(测试)环境。
通过此方法获取任何日志并将代码重新部署到生产环境中存在很高的风险,因此我们无法在此处获取任何日志信息。从一开始就是一个问题,但偶尔发生,但自过去 6-8 个月以来变得频繁。
错误信息:子:初始化
错误编号:7
错误描述:“内存不足”
环境详细信息:具有 3 GB 物理内存的 Windows 2003 Server SP 2。我们的应用程序 COM 对象使用 Apartment Thread 模型构建并在 MTS 中注册。
我们进行了负载测试、压力测试,但仍然无法复制问题。因此,我们也无法找到根本原因。我们已经在这方面花费了足够多的时间,但仍在苦苦挣扎。