1

我正在尝试调试 Web 服务(Windows XP SP3、VS 2008、ASP.NET 2、VB.NET)。

对于大多数情况,如果已经加载了 asp.net 工作进程,我可以启动调用 Web 服务的 Windows 窗体,附加到 Visual Studio 中的 aspnet_wp.exe,然后调试到我心仪的内容,但捕获应用程序启动global.asax 中的事件很痛苦。

如果我重置 IIS,当然没有要附加的进程,直到 Application start 事件结束。

我发现这样做的唯一方法是创建一个单独的 aspx 页面,将其设置为起始页面,然后运行它 - 然后我可以在 App 启动事件的中断处停下来,但维护一个页面很麻烦这本质上只是一个测试存根。

对一些更整洁的东西有什么想法吗?有点像“一开始就附加到进程”。

当然,更好的是不必显式附加到 aspnet_wp.exe 以便能够调试 Web 服务,但我也没有找到这样做的方法。

感谢您的任何建议。

4

1 回答 1

3

尝试将其粘贴在您的应用程序启动事件中,它应该每次都启动您的调试器。只要确保你完成后把它拿出来:-)。

System.Diagnostics.Debugger.Launch()

或者更好的是,在 WebService 的 OnStart 中:

Protected Overrides Sub OnStart(ByVal args() As String)
    ' Add code here to start your service. This method should set things
    ' in motion so your service can do its work.
    System.Diagnostics.Debugger.Launch()
End Sub

更新:将此评论添加到答案中,因为这是个好主意:

将此包装在#if DEBUG 中,它会更安全一些(最终不会将如此灾难性的东西滑入测试/生产环境)。– 滑块规则

于 2009-01-12T20:50:13.807 回答