Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Activator.CreateInstance在Windows服务中失败_C#_Reflection - Fatal编程技术网

C# Activator.CreateInstance在Windows服务中失败

C# Activator.CreateInstance在Windows服务中失败,c#,reflection,C#,Reflection,我有一个Windows服务的问题,它在我尝试使用时抛出NullReference异常 var myType = Activator.CreateInstance(typeof(MyType)) 每当我在控制台窗口中运行完全相同的代码时,都没有问题——在调试了明显的“哪个用户正在运行此代码”之后,我怀疑这仅仅是更改运行该服务的用户的事实,因为我尝试使用计算机的管理员帐户以及LocalSystem运行该服务。我怀疑Windows Update会摆弄默认用户权限,但我觉得这是一个有点绝望的猜测 请记

我有一个Windows服务的问题,它在我尝试使用时抛出NullReference异常

var myType = Activator.CreateInstance(typeof(MyType))
每当我在控制台窗口中运行完全相同的代码时,都没有问题——在调试了明显的“哪个用户正在运行此代码”之后,我怀疑这仅仅是更改运行该服务的用户的事实,因为我尝试使用计算机的管理员帐户以及LocalSystem运行该服务。我怀疑Windows Update会摆弄默认用户权限,但我觉得这是一个有点绝望的猜测

请记住:类型和程序集存在并且工作正常-否则我将无法在控制台窗口中运行代码。只有在Windows服务的上下文中运行时,才会出现错误


问题是:我可以通过创建GenericPrincipal(GenericPrincipal看起来如何)以任何方式在unittest中模拟例如LocalSystem吗?

我知道这是一个简单的答案,但您是否尝试将其放入try-catch块,然后写出异常,以查看它是否基于权限。

您始终可以将visual studio实例作为LocalSystem运行。在命令行中,输入以下内容:

at <time in near future> /interactive  <path to devenv.exe>

一定是别的原因,我一直在Windows服务中使用该调用。我们也是这样做的,所以我也真的不明白:o/是-堆栈跟踪在这里:ved System.RuntimeTypeHandle.CreateInstance(RuntimeType类型,Boolean publicOnly,Boolean noCheck,Boolean&canbecched,RuntimeMethodHandle&ctor,Boolean&bNeedSecurityCheck)ved System.RuntimeType.CreateInstanceSlow(布尔publicOnly,布尔fillCache)ved System.RuntimeType.CreateInstanceImpl(布尔publicOnly,布尔skipVisibilityChecks,布尔fillCache)ved System.Activator.CreateInstance(类型类型,布尔非公共)ved System.Activator.CreateInstance(类型)ved dgiCore.Data.Logic.EmailDataService..cctor()[snip]在调用之前写出每个参数的值,以查看是否有空参数。或者,如果异常为null,但带有您可以理解的特定消息,则抛出异常
at 11:48 /interactive "c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe"