|
|
1
93
作为临时解决方案,您可以做的一件事是启动调试器作为OnStart中的第一行代码。
这将提示您输入要使用的调试器。只需在Visual Studio中打开解决方案并从列表中选择该实例即可。 |
|
|
2
10
我倾向于添加这样的方法:
它将只在项目的调试版本上被调用,并且它将暂停执行并允许您附加调试器。 |
|
|
3
8
一旦您安装了使用
使用参数手动启动服务时
要支持此功能,请更改服务的
(可选)如果要缩小到服务引发错误的确切代码行,请从Visual Studio菜单中打开异常。
|
|
|
4
7
它工作得很好!
|
|
|
5
5
上面的选项在Windows 8上似乎不起作用。 我在onStart()方法中添加了thread.sleep(15000);并在代码的下一行设置了断点。这给了我15秒的时间在启动服务后将vs调试器附加到我的进程中,并允许我很好地调试onstart()方法。 |
|
6
4
您可以添加这样的代码行:
它将弹出一个窗口,提示您选择要使用哪个调试器进行调试,例如允许您附加到Visual Studio并单步执行代码。 见: http://msdn.microsoft.com/en-us/library/system.diagnostics.debugger.break.aspx |
|
7
2
可以为作为控制台应用程序运行的Windows服务设置一个配套项目,但可以使用反射访问服务方法。有关详细信息和示例,请参见此处: http://ryan.kohn.ca/articles/how-to-debug-a-windows-service-in-csharp-using-reflection/ . |
|
|
8
2
在Service OnStart方法中使用以下代码:
从弹出消息中选择Visual Studio选项。记住以管理员身份运行Visual Studio。 注意:要仅在调试模式下使用它,如果可以使用调试编译器指令,如下所示。这将防止在发布模式下在生产服务器上发生意外或调试。
|
|
|
9
2
正如其他人指出的,您必须向onStart方法添加一个调试器中断:
同时以管理员身份启动VisualStudio并允许由其他用户自动调试进程(如所述 here ):
(我在这里也解释了这一点: https://stackoverflow.com/a/35715389/5132456 ) |
|
|
10
1
我知道这很晚了,但这是我们处理Windows服务调试的方法 首先创建一个将充当服务的类。 添加适当的启动、停止、暂停等方法。 将Windows窗体添加到服务项目。 在服务代码中,创建上面创建的服务类,并进行在ServiceBase类中启动和停止服务所需的调用。 打开program.cs并添加以下内容
在调试模式下运行时,Windows窗体将启动。完成后请记住在发布模式下构建。当然,条件编译变量可以是您喜欢的任何东西。甚至可以创建单独的项目,这样调试表单就是它自己的项目。 希望这有帮助 |
|
|
11
1
你也可以试试 System.Diagnostics.Debugger.Launch()。 方法。它有助于将调试器指针移到指定的位置,然后您可以调试代码。 在此步骤之前 请安装service.exe 使用Visual Studio命令提示的命令行- InstallUtil项目服务.exe 然后从 控制面板->管理工具->计算机管理->服务和应用程序->服务->您的服务名称 |
|
|
12
1
如果在onStart方法中添加debugger.launch(),但它不起作用,那么可能会出现与我相同的问题,即,异常发生在构造函数中,因此永远不会调用onStart。(头拍) (很抱歉,如果这应该是对别人答案的评论,但我没有足够的可信度发表评论) |
|
|
13
0
尝试添加调试器。在有问题的方法中中断。当服务启动时,将引发异常,寡妇应提供使用Visual Studio进行调试。 |
|
|
14
0
我通常有一个控制台应用程序,它假装是SCM,例如,调用start、stop,然后我可以将其作为主要的编码/调试目的,并使用debugger.break进行调试,当服务通过SCM安装和启动后。 这意味着要开始做更多的工作,我有一个包含所有服务代码的类库,这个类公开了Windows服务类和控制台应用程序都可以调用的启动和停止。 马特 |
|
|
15
0
在我讨论这个话题之前,有一个建议。如果您是服务器端开发人员,请务必特别使用日志。因为在Visual Studio中调试代码时可能无法产生某些条件。 回到主题,我使用envoirnment.userInteractive标志这非常方便,请参阅下面的代码
从Visual Studio中,您将获得用户交互标志集,以便我将其作为控制台应用程序运行,此外,如果您想测试产品构建,还可以通过双击产品构建并附加调试器来运行它。 |
|
|
16
0
我有一个有趣的方法来完成这个任务,我添加了另一个名为debugonService的配置
我使用if指令。 项目安装程序.cs
我添加了一个Windows窗体,还将Windows窗体包装在
根据所选的配置,代码可以作为易于调试的Windows窗体应用程序运行,也可以作为服务运行。 如果看起来像很多工作,但它一直工作,使调试代码非常容易。您可以将所有类型的输出添加到表单中,以便观察它的运行。 |