6

在我的 asp.net 应用程序中,我正在使用 Interop dll 调用一个 com 组件方法。这在正常情况下工作正常,但在生产中有时会抛出异常

System.Runtime.InteropServices.COMException (0x80010105):服务器抛出异常。(来自 HRESULT 的异常:0x80010105 (RPC_E_SERVERFAULT))

我怀疑当大量用户同时访问同一页面时会发生这种情况。

是否有人知道调试此问题的解决方案或步骤。

我有另一个问题。在互联网上搜索时,我遇到了这个 aspcompact 属性以及与 com 组件相关的 MTA vs STA 线程模型。这个 aspcompact 属性是否适用于互操作 dll(运行时可调用包装器)。添加这个属性会解决我的问题吗?

4

5 回答 5

6

RPC_E_SERVERFAULT 表示进程外 COM 服务器抛出了结构化 (Win32) 异常,可能是各种各样的东西,例如访问冲突、除以零等。换句话说,COM 服务器的错误实现并且在调用应用程序中您无法解决此问题(除非您可以找出错误是什么并且可以设计一种方法来调用不执行错误代码的 COM 组件)。

您需要找到负责 COM 服务器的同事,让他/她在异常发生时使用调试器捕获故障转储,然后对转储进行事后调试以诊断问题并修复它。

于 2012-09-21T22:01:37.930 回答
0

监视您的站点以在引发异常时捕获异常。

使用调试诊断工具 v1.2

使用生成的转储更容易识别故障点。

于 2012-09-14T15:13:46.230 回答
0

也可能意味着 COM 对象崩溃。尝试自己重新运行由 COM 对象表示的应用程序,看看它是否崩溃或产生一些错误。

于 2014-02-24T22:53:23.577 回答
0

我遇到了同样的问题,但我通过向 Main 函数添加 [STAThread] 属性让它工作。

[STAThread]
static void Main(string[] args)
于 2015-05-22T14:06:45.973 回答
0

我正在运行使用 MS Office 2010 Excel COM 对象的 Powershell 脚本并开始收到此错误。罪魁祸首是最新的 MS Office 补丁。抱歉,我无法准确说明是哪一个导致了错误(我一次卸载了一堆),但卸载其中一个解决了问题。更新于 2016 年 7 月 18 日安装。

于 2016-07-21T13:09:52.560 回答