我有一个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.”
我唯一的猜测是,如果用户没有以其他方式登录,系统没有分配足够的内存?我不知道问题可能是什么。有什么建议吗?
感谢您的帮助!
答案 0 :(得分:0)
是否有可能在您的代码之后创建Viewer.exe
并且以某种方式没有分配足够的内存?你能激活吗?