我有一个 C# Web 服务,它调用 COM 对象来访问 FileNet 成像系统。该服务在调用 FileNet COM 对象时偶尔会遇到以下错误:
System.Runtime.InteropServices.COMException (0x80040005):需要运行对象才能执行此操作(来自 HRESULT 的异常:0x80040005 (OLE_E_NOTRUNNING))
关于这意味着什么或如何解决它的任何想法?用谷歌搜索时几乎找不到任何东西,而且我对 COM 的经验非常有限。谢谢。
我有一个 C# Web 服务,它调用 COM 对象来访问 FileNet 成像系统。该服务在调用 FileNet COM 对象时偶尔会遇到以下错误:
System.Runtime.InteropServices.COMException (0x80040005):需要运行对象才能执行此操作(来自 HRESULT 的异常:0x80040005 (OLE_E_NOTRUNNING))
关于这意味着什么或如何解决它的任何想法?用谷歌搜索时几乎找不到任何东西,而且我对 COM 的经验非常有限。谢谢。
不幸的是,HRESULT 是“出错了”的错误代码。我会建议:
如果这些都没有进一步说明出了什么问题,您可能需要考虑将您的 COM 程序集添加到组件服务包中。这应该让您可以更轻松地关闭它并重新启动它,而无需重新启动系统。
取决于操作系统(这是来自 Windows 7,但大多数是相似的):
调用代码不应该有任何必要的更改。向您的服务发出请求并返回到管理器...一旦 COM+ 应用程序启动,您应该会看到该图标动画。如果您愿意,您还应该能够从这里重新启动它。
有很多关于降速时间和池的配置选项,例如,如果您发现 COM DLL 仅在一段时间后出现问题,这可能会对您有所帮助。
如果问题确实是间歇性的,有时会发生在一台机器上,有时不会 - 您可以编写代码来捕获错误,然后再试一次。
如果有机器无法正常工作,可能是由于其他问题,例如 UAC,或组件未正确安装。