设想
我有一个用C#编写的Windows服务。
我已经阅读了所有有关如何调试它的google线程,但仍然无法正常工作。
我已经运行“PathTo.NetFramework\InstallUtil.exe C:\MyService.exe”。它说安装成功,但是当我运行“Services.msc”时,该服务根本不在任何地方显示。如果我进入任务管理器,会有一个名为“MyService.vshost.exe”的进程。可以肯定不是,因为它是服务而不是过程。
有人可以向我解释吗?
如果在运行Services.msc时应该看到该服务?
(请记住,这都是在本地计算机上完成的,根本没有服务器。
其他
我正在运行VS2008。
编辑:
这些都是在我的本地计算机上完成的,我没有服务器或无法访问任何服务器。
另外,我什至不知道该服务的功能,我想对其进行调试,以便我可以逐步遍历代码并查看其工作方式(该服务内的代码,而不是该服务本身的代码)建议我看一下模板)。
编辑2:
这些都不起作用!
每次尝试尝试时,都会收到一些有关必须使用NET START或安装服务的消息。
编辑3:
我正在运行VS2008。
我输入了这个:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe C:\dev\Restarter\bin\Release\Restarter.exe
我懂了:
Microsoft(R).NET Framework安装实用程序2.0.50727.3053版
版权所有(c)Microsoft Corporation。版权所有。
运行事务处理的安装。
开始安装的安装阶段。
请参阅C:\dev\Restarter\bin\的日志文件内容
Release\Restarter.exe程序集的进度。
该文件位于C:\dev\Restarter\bin\Release\EDT.Restar
ter.InstallLog。
安装程序集“C:\dev\Restarter\bin\Release\Restarter.exe”。
受影响的参数是:
logtoconsole =
assemblypath = C:\dev\Restarter\bin\Release\Restarter.exe
日志文件= C:\dev\Restarter\bin\Release\Restarter.InstallLog
安装阶段已成功完成,并且提交阶段已开始。
请参阅C:\dev\Restarter\bin\的日志文件内容
Release\Restarter.exe程序集的进度。
该文件位于C:\dev\Restarter\bin\Release\Restar
ter.InstallLog。
提交程序集“C:\dev\Restarter\bin\Release\Restarter.exe”。
受影响的参数是:
logtoconsole =
assemblypath = C:\dev\Restarter\bin\Release\Restarter.exe
日志文件= C:\dev\Restarter\bin\Release\Restarter.InstallLog
提交阶段已成功完成。
事务安装已完成。
C:\Program Files\Microsoft Visual Studio 9.0\VC>
然后我去了RUN-> Services.msc
我什么都看不见。
任务管理器中有一个名为“Restarter.vshost.exe”的进程。
而已。
我只想安装和调试它。
我知道它有效(因为它运行并且不会崩溃)。
但是代码是由一位 friend 编写的,我想通过在 Debug模式下进行遍历来理解基础代码。
最佳答案
我建议使用以下模式进行调试:
var ServiceToRun = new SomeService();
if (Environment.UserInteractive)
{
// This used to run the service as a console (development phase only)
ServiceToRun.Start();
Console.WriteLine("Press Enter to terminate ...");
Console.ReadLine();
ServiceToRun.DoStop();
}
else
{
ServiceBase.Run(ServiceToRun);
}
编辑:确保您的目标是控制台应用程序,而不是Windows应用程序,否则它将不起作用。
关于c# - 调试Windows服务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2629720/