【发布时间】:2012-03-18 21:40:04
【问题描述】:
我在 C# (4.0) 中创建了一个 Windows 服务,并尝试在命令行中使用 installutil 工具安装它。但是我得到一个例外。我设法找出我的代码的哪一部分导致了异常 - 使用了一些糟糕的日志记录,但无论如何 - 但现在我想了解原因。所以我想做的是调试我的 Windows 服务的安装。
我知道如何调试服务本身,但是在这里,我想在服务中调试我的Installer.Install(IDictionary stateSaver)方法的内容。
我尝试将调试器附加到 cmd.exe 进程,但它显然不起作用。我也在考虑将调试器附加到 installutil 进程,但我不知道如何做到这一点。
我看过这个帖子:How do you debug a windows service that is being installed? 和其他几个帖子,但在这种情况下,出于某种原因,这个人似乎已经在 services.msc 中提供了他的服务,这不是我的情况。
我怎样才能做到这一点?
【问题讨论】:
-
安装 Windows 服务时遇到的具体异常是什么?
-
@ABKolan 我在我正在使用(和我创建)的类的静态构造函数上得到
TypeInitializerException,这是由该构造函数中的对象上的NullReferenceException引起的。这个对象与我创建的一些自定义配置类有关。奇怪的是,这段代码也被另一个服务使用,并且在那个服务中一切正常。这就是我要调试安装过程的原因。
标签: c# debugging windows-services installutil