尝试在经典ASP.NET中实例化COM对象时间歇性出现0x80070002错误

尝试在经典ASP.NET中实例化COM对象时间歇性出现0x80070002错误,.net,com,asp-classic,.net,Com,Asp Classic,我们有一个经典的ASP页面,它通过COM接口实例化.Net对象。它在很长一段时间内工作正常,但在周末我们应用了一些Windows更新,它在我们的生产环境中不再可靠地工作。有时有效,有时无效,而且在起作用时似乎是随机的。当我们将它们从集群中取出时,它在测试环境中甚至在生产服务器上都不会失败(似乎只有在负载下才会失败) 错误为“-2147024894-未找到文件或程序集名称FusionEngine或其依赖项之一。”转换为十六进制的数字为80070002 我们创建了一个非常基本的测试页面。它基本上只是

我们有一个经典的ASP页面,它通过COM接口实例化.Net对象。它在很长一段时间内工作正常,但在周末我们应用了一些Windows更新,它在我们的生产环境中不再可靠地工作。有时有效,有时无效,而且在起作用时似乎是随机的。当我们将它们从集群中取出时,它在测试环境中甚至在生产服务器上都不会失败(似乎只有在负载下才会失败)

错误为“-2147024894-未找到文件或程序集名称FusionEngine或其依赖项之一。”转换为十六进制的数字为80070002

我们创建了一个非常基本的测试页面。它基本上只是实例化对象并调用其上的简单属性来显示

<%
On Error Resume Next
set oFusion = Server.CreateObject("Fusion.Engine")
%>
Error: <%=err.Number%> - <%=err.Description%><br>
[<%=oFusion.DPI%>]<br>

错误:-
[]
如果检测到错误(10次,间隔1秒),我们尝试重新创建该对象,但是如果它一次不工作,那么它也不工作10次


融合对象非常简单。它只引用System.dll和System.Drawing.dll(它生成图像)。

问题是我们运行了两个不同版本的.Net(1.1和2.0)。通过确保它们在不同的应用程序池下运行,我们能够让它正常工作