如何在不触发Application_Start事件的情况下启动aspnet_wp.exe

时间:2009-01-12 20:39:56

标签: asp.net web-services debugging global-asax

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

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

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

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

任何有点整洁的想法?那种,“一旦它开始就附加到一个过程”。

当然,更好的是,不必将显式附加到aspnet_wp.exe以便能够调试Web服务,但我还没有找到一种方法任

感谢您的任何建议。

1 个答案:

答案 0 :(得分: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中包装它,它有点   更安全(最终不会滑倒一些东西   所以灾难性地进入测试/生产   环境)。 - sliderhouserules