当调用 Marshal.GetActiveObject(此处为 class id)时,什么会导致错误 800401E3(操作不可用)?
我们遇到这样的情况:某些 .NET 代码尝试访问 COM(实际上是 DCOM)对象的当前实例。
被访问的对象是用VB6开发的。 它的当前实例在远程系统上可用,并且似乎可以从 VB6 代码正确访问。
尝试调用 Marshal.GetActiveObject
(指定类名)会导致抛出 COMException,引用错误 800401E3(操作不可用)。
当在托管该 DCOM 组件的计算机上运行时,相同的 .NET 代码似乎可以正确运行。
任何人都可以建议为什么会生成此 COMException 吗?
We have a scenario where some .NET code is attempting to access the current instance of a COM (actually DCOM) object.
The object being accessed was developed in VB6. A current instance of it is available on the remote system, and appears to be accessed correctly from VB6 code.
Attempting to call Marshal.GetActiveObject
, specifying the class name, causes a COMException to be thrown, referencing error 800401E3 (Operation Unavailable).
The same .NET code appears to operate correctly when run on the machine hosting that DCOM component.
Can anyone suggest why this COMException is getting generated?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您是否尝试在 .net 客户端应用程序中使用 [STAThread] 属性?
Did you try to use the [STAThread] attribute in the dot net client app?