我们有一个经典的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>
如果检测到错误(间隔1秒10次),我们尝试重新创建对象,但如果一次都不工作,也不会工作10次。
融合对象非常简单。它只引用System.dll和System.Drawing.dll(它生成图像)。