我们有一个经典的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(它生成图像)。
答案 0 :(得分:0)
问题是我们运行了两个不同版本的.Net(1.1和2.0)。我们能够通过确保它们在不同的应用程序池下运行来实现它。