我创建了包含服务引用的 ComVisible .Net (C#) dll。尝试从外部 COM 客户端 (VBScript) 访问 dll 时,每当我创建对象时都会引发异常。
抛出的异常是 InvalidOperationException (0x80131509)。
经过短暂的调查,我注意到它在创建服务引用对象时失败(“新建”它)。
- 下面代码中使用的服务引用对象名称为
ServiceClient
ServiceClient
对于 C# dll 是私有的- 尝试在构造函数中创建引用也失败了
- 从类或构造函数中删除“new”关键字会使代码通过,
- 该服务已启动并正在运行
dll代码:
namespace UIIdentifier.Updater
{
[ClassInterface(ClassInterfaceType.AutoDispatch)]
public class Client
{
[ComVisible(false)]
//<<--This throws the exception -->>
private ServiceClient uiSpySrv = new ServiceClient();
[ComVisible(true)]
public string hello()
{
return "hello";
}
}
}
客户端代码:
Dim oUpdater
Set oUpdater = CreateObject("UIIdentifier.Updater.Client")
MsgBox oUpdater.hello
有什么建议为什么会发生这种情况?