RPC_E_SERVERFAULT

时间:2012-09-14 14:28:05

标签: asp.net com

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

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

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

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

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

5 个答案:

答案 0 :(得分:4)

RPC_E_SERVERFAULT意味着进程外COM服务器抛出结构化(Win32)异常,这可能是各种各样的事情,例如访问冲突,除零等等。换句话说,有一个错误COM服务器的实现,你可以在你的调用应用程序中做任何事情来解决这个问题(除非你能找出错误是什么,并且可以设计一种方法来调用不执行错误代码的COM组件)。

你需要找到你的同事负责COM服务器,让他/她使用调试器在发生异常时捕获崩溃转储,然后在转储上进行事后调试以诊断问题和解决它。

答案 1 :(得分:0)

监控您的网站,以便在提升时捕获异常。

使用Debug Diagnostics Tool v1.2

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

我遇到了同样的问题,但我通过在Main函数中添加[STAThread]属性来实现它。

[STAThread]
static void Main(string[] args)

答案 4 :(得分:0)

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

相关问题