如果应用程序在IIS中托管并在IIS启动时启动,如何调试在应用程序启动时执行的代码?

时间:2017-01-19 14:05:51

标签: .net visual-studio debugging iis

我有一个.NET应用程序,它是服务器框架,它托管在IIS中,它在IIS启动时启动。

要调试我通过Visual Studio附加到客户端进程的框架。它适用于正常的调试,但现在我想在框架从xml文件加载其配置时调试部分(它由C#代码处理)。它只在应用程序启动时执行一次,因此与IIS启动的时间完全相同。附加我的解决方案,我并不比IIS快。

如果我将框架附加到客户端进程,则重置IIS,调试器将被分离。

如何处理这样的问题?

糟糕的解决方案:唯一可行的方法是在应用程序的开头放置一个非常长的Thread.Sleep,然后快速连接。

2 个答案:

答案 0 :(得分:4)

添加

System.Diagnostics.Debugger.Launch();

Application_Start。您将获得一个弹出窗口,询问您是否要调试网站,如果单击“确定”,您将在调试模式下进入Visual Studio,在该行暂停。

答案 1 :(得分:2)

尝试将项目更改为使用“IIS Express”而不是本地IIS - 当您启动应用程序时,Visual Studio也将启动IIS Express,调试器已附加到服务上。

您可以通过右键单击项目来更改设置=>选择Properties =>单击Web选项卡=>在“服务器”下的组合框中找到IIS Express。