在IIS 7.5上运行时,如何调试使用PreApplicationStartMethodAttribute程序集属性设置的方法?

问题描述

| 我在汇编程序级别上声明了“ 0”,如下所示:
[assembly: PreApplicationStartMethod(typeof(MyApp.Global),\"InitializeApplication\")]
有关更多详细信息,请参见此说明。 这是ѭ2的声明:
public class Global : HttpApplication
{
    public static void InitializeApplication()
    {
        // Initialization code goes here...
    }
}
我在本地IIS 7.5实例上运行我的应用程序,并且想调试我的
InitializeApplication
方法。我在上面设置了一个断点,但是没有被击中。 我认为代码是在应用程序池启动时执行的,据我所知,这是在Visual Studio中按F5之前的代码。 我试图将调试器附加到我能找到但无济于事的任何与IIS相关的过程。 我也意识到我可以使用Cassini进行调试,但是我需要在此修复与IIS相关的问题。 因此,问题是:如何调试“ 0”指定方法?     

解决方法

尝试在本地使用IIS Express,将调试器附加到其进程中可能会更容易。     ,您可以在初始化代码中加上ѭ6。连接调试器后,此断点将始终命中。 如果要附加到在IIS中运行的进程,请使用\“附加到进程\”(Ctrl + Alt + p),然后查找w3wp.exe,您应该能够通过用户名(apppool用户)识别正确的进程。 )并输入(托管)。如果未列出该进程,请确保选中“显示所有用户的进程”。当然,该流程需要运行,因此您可能需要先触发一个请求。 好的方法是将项目发布到本地文件夹,该文件夹在IIS中用作基本路径,而不是将IIS直接指向代码库。如果执行此操作,则w3wp进程通常在重新发布后无需重新启动,因此您可以轻松地在后续的调试尝试中附加调试器。