Application_Start事件在发布时未触发

时间:2011-08-24 10:28:31

标签: c# .net asp.net global-asax

我研究了很多但什么都没有......

发布网站时,

Application_Start事件未触发。但它在localhost中工作正常。发布后,我在Bin文件夹中获得了App_global.asax.dll和App_GlobalResources.compiled,并且在根目录下也有PrecompiledApp.config。

3 个答案:

答案 0 :(得分:4)

第一次运行Application时会触发Application_Start事件。它与重新启动计算机或重新启动IIS无关。您是否尝试过制作新的示例应用程序并测试该应用程序的Application_Start事件是否运行良好。如果是,则表示您的应用程序配置已损坏。

也许重新启动您的应用程序池可以帮助您。

答案 1 :(得分:0)

可能是这个事件按预期被触发了,但是由于你正在执行预编译的web,并且在发布模式下,没有调试符号 - 在尝试远程调试应用程序的情况下 - 。

另一个可能的原因是它正在触发,但是在Application_Start处理程序中抛出了一些异常,并且由于每个应用程序生命周期调用一次,因此您需要回收应用程序池或重新启动整个IIS。

答案 2 :(得分:0)

你的代码,在其他评论中说:

protected void Application_Start(Object sender, EventArgs e) {
    logfile.ErrorLog("UserErrorLog\\UserErrorLog.txt", "Application_Start method executed at " + System.DateTime.Now);
    DoSomeWork();
    logfile.ErrorLog("UserErrorLog\\UserErrorLog.txt", "Application_Start method execution ends at " + System.DateTime.Now);
}

在正常的IIS设置中写入UserErrorLog\\UserErrorLog.txt会有问题,它会尝试在%SYSTEMROOT%\System32\Inetsrv内的某处写入,这是IIS的执行目录。您需要指定绝对路径(C:\Logs\...)或使用HostingEnvironment.MapPath来解析基于应用程序的路径(HostingEnvironment.MapPath("~/App_Data/Logs/...")