【问题标题】:What causes error HRESULT: 0x80010105 (RPC_E_SERVERFAULT)?什么导致错误 HRESULT: 0x80010105 (RPC_E_SERVERFAULT)?
【发布时间】:2018-10-17 00:46:07
【问题描述】:

我创建了一个 ASP.NET Web 服务,它使用第 3 方支付处理引擎来授权信用卡交易。

Web 服务托管在单独的应用程序服务器上,并通过 ActiveX 对象(.ocx 扩展名)连接到支付处理服务器。最近,当我尝试使用“IsAvaiable”检查建立与应用程序的连接时,它一直在生成HRESULT: 0x80010105 (RPC_E_SERVERFAULT) 异常。

有没有人推荐一个开始研究这个问题的好地方?

(我知道联系供应商是第一选择,但在联系技术支持之前,我想先让我的“鸭子排成一排”)

【问题讨论】:

    标签: .net web-services com-interop


    【解决方案1】:

    我在 Web 服务中使用 ActiveX 对象时遇到了同样的错误 (RPC_E_SERVERFAULT)。每当 ActiveX 对象崩溃时,IIS 都会抛出此错误,这将掩盖对象崩溃的原因(对我们而言,它通常在加载需要处理和返回值的无效文件时崩溃)。

    您是否检查过系统日志等以查看您的 ActiveX 控件是否在任何地方记录了实际错误?

    如果您看不到任何明显的东西,那么我建议您联系他们的技术支持,以找出诊断实际错误的最佳方法,以及它是否在任何地方记录错误。

    【讨论】:

    • 我检查了 Web 服务服务器的事件日志,没有看到任何与 RPC_E_SERVERFAULT 错误相关的错误。我无权访问应用程序服务器,也许我可以在那里找到一些东西。
    【解决方案2】:

    Michael,您的第三方 Activex 控件可能没有正确管理内存。我的猜测是它在不应该覆盖内存的一部分。请咨询您的第三方提供商,看看他们是否有解决方案。

    【讨论】:

      【解决方案3】:

      我知道这是堆栈溢出,这里应该有一个编程答案,但你提到故障机器没有更新或软件更改。如果没有软件更改,则很可能是硬件问题。 RAM 出现故障,CPU 出现故障,硬件出现故障。如果您可以使系统脱机并测试硬件,您可能会发现磁盘或内存模块出现故障(也可能是 NIC)。这可能是供应商让您做的第一步,但如果您自己做,您可以按照自己的条件去做,并且可能会在他们的几个小时内为自己支付服务费。

      【讨论】:

      • @Elmue 有什么建设性的补充吗?验证硬件通常是一个很好的步骤,我目睹了坏 ram 会导致各种错误,包括加密签名验证问题。如果加密失败,RPC 可能会因此而失败。该问题还询问了与供应商联系时的建议,常规硬件将摆脱电话代理用来转储电话的许多低俗技术。
      • 我看到了几个 RPC_E_SERVERFAULT 错误。硬件从来都不是原因。此错误仅表示 COM 服务器已崩溃。原因主要是编程错误,如缓冲区溢出或读取空指针或错误处理错误。如果您遇到 RAM 问题,您会在不同的应用程序(不仅仅是在一台服务器中)中看到崩溃,甚至直到蓝屏。硬件问题不可能只导致一个应用程序崩溃。
      • 这很有成效,尽管我不同意,但还是要投赞成票。我已经看到内存损坏导致单个应用程序失败,即使每次都以相同的方式失败。这不太可能,但完全有可能,具体取决于内存使用情况和软件软件的分配方案。它还可以防止电话代理告诉您检查硬件然后挂断您的电话。
      【解决方案4】:

      您可以启用adplus 让它在每次遇到异常时获取内存转储。这可用于帮助调试问题。

      【讨论】:

      • 内存转储来自哪里:IIS 还是 ActiveX 对象?
      • 内存转储来自应用程序,而不是来自单个模块,因此是 IIS
      • 发生异常时实际上并没有生成.DMP文件。我应该寻找其他类型的文件扩展名,这将被视为内存转储。
      【解决方案5】:

      也可能意味着 COM 对象崩溃。如果 Excel 中的一个宏导致 Excel 崩溃,就会发生这种情况。尝试自行重新运行由 COM 对象(在我的例子中是 Excel 插件)表示的应用程序,看看它是否崩溃或产生错误。

      【讨论】:

        猜你喜欢
        • 2017-05-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-06
        • 2012-05-19
        相关资源
        最近更新 更多