仅当用户在本地登录时,Activator.CreateInstance才能在Web服务中工作

时间:2011-09-20 15:16:51

标签: wcf memory activator

我有一个WCF服务模仿用户并调用Activator.CreateInstance来创建COM对象:

if(impersonateValidUser(impersonatedUser,impersonatedUserDomain,impersonatedUserPassword))
    {
    try
    {
        obj = Activator.CreateInstance(Type.GetTypeFromProgID("Client.Application"));
    }
    catch { }
    undoImpersonation();
}

当我以impersonatedUser本地登录到服务器时,所有工作都按预期工作。 Client.exe作为一个流程存在,Viewer.exe也是如此。两者都是在激活COM对象时创建的。

但是,如果我没有在impersonatedUser本地登录,则只创建Client.exe作为进程,我收到错误:

The instruction at “<address>” referenced memory at "0x00000000". The memory could not be “read.”

我唯一的猜测是,如果用户没有以其他方式登录,系统没有分配足够的内存?我不知道问题可能是什么。有什么建议吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

是否有可能在您的代码之后创建Viewer.exe并且以某种方式没有分配足够的内存?你能激活吗?