Global.asax中的Application_Start事件未触发

时间:2015-09-22 18:16:35

标签: c# asp.net

我创建了一个每分钟运行的任务,并决定将其放在Application_Start文件中的Global.asax事件中,以便在应用程序启动后立即执行。当我运行它(没有调试和调试模式)时,它没有启动。

我试图将它放在Session_Start事件中,只是为了确保它不是来自Global.asax文件的标记,并且它运行良好。但不幸的是,它必须是应用程序启动时,而不是会话开始时。

这是我的Global.asax(ASP.NET 2.0,VS2008):

<%@ Application Language="C#" Inherits="Microsoft.Practices.CompositeWeb.WebClientApplication" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="TaskManager" %>

<script runat="server">

    private TaskScheduler _scheduler = null;

    void Application_Start(object sender, EventArgs e) 
    {
        XmlDocument xml = new XmlDocument();
        xml.Load(Server.MapPath(@"\Config\tasks.config"));
        XmlNodeList nodes = xml.SelectNodes("Tasks/Task");

        this._scheduler = new TaskScheduler(nodes);
        this._scheduler.StartTasks();
    }

    void Application_End(object sender, EventArgs e) 
    {
        this._scheduler.StopTasks();
    }

    void Application_Error(object sender, EventArgs e) 
    { 
        // Code that runs when an unhandled error occurs

    }

    void Session_Start(object sender, EventArgs e) 
    {

    }

    void Session_End(object sender, EventArgs e) 
    {
        // Code that runs when a session ends. 
        // Note: The Session_End event is raised only when the sessionstate mode
        // is set to InProc in the Web.config file. If session mode is set to StateServer 
        // or SQLServer, the event is not raised.

    }

</script>

1 个答案:

答案 0 :(得分:0)

抱歉 - 由于代表我不能发表评论 - 但是如果遇到麻烦你可以求助于System.Diagnostics.Debugger.Launch();结合上述任何一项(编辑web.cofig等)