我创建了一个ASP.NET Web服务,它使用第三方支付处理引擎来授权信用卡交易。
Web服务托管在单独的应用程序服务器上,并通过ActiveX对象(.ocx
扩展名)连接到付款处理服务器。最近,当我尝试使用“HRESULT: 0x80010105 (RPC_E_SERVERFAULT)
”检查建立与应用程序的连接时,它一直在生成IsAvaiable
异常。
是否有人建议开始研究此问题的好地方?
(我知道联系供应商将是第一个选择,但我希望在联系技术支持之前让我的“鸭子连续”)
答案 0 :(得分:2)
我在Web服务中使用ActiveX对象时遇到了同样的错误(RPC_E_SERVERFAULT
)。每当ActiveX对象崩溃时,IIS都会抛出此错误,这会掩盖对象崩溃的原因(对于我们来说,它通常在加载需要处理并返回值的无效文件时崩溃)。
您是否检查过系统日志等,以查看您的ActiveX控件是否在任何地方都记录了实际错误?
如果您看不到任何明显的信息,我建议您联系他们的技术支持人员,找出诊断实际错误的最佳方法,以及是否在任何地方记录错误。
答案 1 :(得分:2)
迈克尔,你的第三方Activex控件可能无法正确管理内存。我的猜测是它不应该覆盖一部分内存。请咨询您的第三方提供商,看看他们是否有解决方法。
答案 2 :(得分:1)
我知道这是堆栈溢出,这里应该有一个编程答案,但你没有提到故障机器的更新或软件更改。如果没有软件更改,则很可能是硬件问题。 RAM失败,CPU出现故障,硬件出现故障。如果您可以使系统脱机并测试硬件,您可能会发现磁盘或内存模块出现故障(也可能是NIC)。这可能是供应商要做的第一步,但如果您自己这样做,您可以按照自己的条件进行操作,并且可以在几个小时的时间内为您自己节省服务费。
答案 3 :(得分:0)
每次出现异常时,都可以启用adplus来获取内存转储。这可以用来帮助调试问题。
答案 4 :(得分:0)
也可能意味着COM对象崩溃了。如果这发生在Excel中的宏崩溃Excel。尝试单独重新运行COM对象(在我的例子中是一个Excel插件)表示的应用程序,看它是否崩溃或产生一些错误。