不幸的是,HRESULT 是“出错了”的错误代码。我会建议:
- 检查系统和应用程序事件日志以查看是否记录了更好的错误消息
- 检查您的 COM 组件的任何特定于应用程序的错误日志
如果这些都没有进一步说明出了什么问题,您可能需要考虑将您的 COM 程序集添加到组件服务包中。这应该让您可以更轻松地关闭它并重新启动它,而无需重新启动系统。
取决于操作系统(这是来自 Windows 7,但大多数是相似的):
- 启动组件服务(通常在管理工具下)
- 深入到组件服务、计算机、我的电脑、COM+ 应用程序。
-
- 右键单击以添加新应用程序。
- 选择创建一个空的应用程序。这将让您选择要在此处运行的 COM 组件。
- 为应用程序命名
- 如果您对 COM 组件不太了解,我建议您选择一个服务器应用程序来启动。这将为调用者在进程外启动它。如果这不起作用(例如调用失败等),请删除此应用程序并作为库应用程序重试。
- 选择服务的凭据。网络服务可能是最安全的选择(例如最少的权限),但我不知道您的要求是什么。如果它正在访问硬件或其他类似的东西,您可能需要提供域帐户或 LocalSystem。
- 完成向导(如果需要更多控制,可能需要重新访问这些)。
- 深入了解您的新应用程序并找到 Components 文件夹。
- 右键单击并选择新建组件
- 如果 COM 控件已注册,请选择 Import components。如果没有,请选择安装组件
- 现在选择您关心的组件。请注意,将所有相互关联的组件放入同一个应用程序中是相当重要的。否则,较旧的 COM 程序集不太可能正常工作
- 完成向导。如果您返回到树视图的 COM+ 应用程序级别,您应该会看到您的新应用程序,带有一个非动画图标。
调用代码不应该有任何必要的更改。向您的服务发出请求并返回到管理器...一旦 COM+ 应用程序启动,您应该会看到该图标动画。如果您愿意,您还应该能够从这里重新启动它。
有很多关于降速时间和池的配置选项,例如,如果您发现 COM DLL 仅在一段时间后出现问题,这可能会对您有所帮助。