我在Application_Start()
的第一行设置了断点,但是Visual Studio不会在此处中断。
Visual Studio已将自己附加到IIS工作进程:
在机器'SRD00510'上自动附加到进程'[2092] w3wp.exe'成功。
我的主页控制器中的断点可以工作。
更新
我尝试过:
iisreset
- 重新启动Visual Studio
- 重启计算机。
- 尝试重新安装aspnet (
aspnet_regiis -i
)
我在Application_Start()
的第一行设置了断点,但是Visual Studio不会在此处中断。
Visual Studio已将自己附加到IIS工作进程:
在机器'SRD00510'上自动附加到进程'[2092] w3wp.exe'成功。
我的主页控制器中的断点可以工作。
更新
我尝试过:
iisreset
aspnet_regiis -i
)阅读您的问题,我假设您正在使用IIS进行调试,而不是使用Visual Studio Development Server。
在这种情况下,调试应用程序启动十分棘手,因为它仅在应用程序池启动或重新启动时调用一次。当Visual Studio附加到进程时,Application_Start已经运行过了。
诀窍在于使应用程序池重新启动而不终止您附加的进程。
请按照以下步骤操作:
对我有效(IIS 7.5,VS2015)。
将此行代码放置于 Application_Start() 中。
Debugger.Break();
这将呈现一个对话框,允许您选择调试器。您可能需要重新启动应用程序池。
Application_Start()
仅在应用程序启动时运行一次。重新启动应用程序的几个因素包括:
iisreset
。web.config
文件应该就可以了。你确定断点处的代码正在执行吗?你能把它移到Application_Start()
方法的开头去吗? - jrummell我的解决方案是切换到使用“Visual Studio Development Server”来处理应用程序类(Global.asax)问题。完成后,我切换回IIS。
我以前通过以下方法解决过这个问题:
现在打开您的解决方案并尝试一下。(祝你好运 :))
Application_Start()
在应用程序的过程中只运行一次。namespace DataService
{
using NLog;
public class Global : System.Web.HttpApplication
{
private Logger log;
protected void Application_Start(object sender, EventArgs e)
{
LogManager.LoadConfiguration("nlog.config");
log = LogManager.GetCurrentClassLogger();
log.Error($"Read this line in the log specified in nlog.config");
}