.NET 4.0路由和应用程序启动

.NET 4.0路由和应用程序启动,.net,.net,对,我在Global.asax中使用application_start事件,如下所示: void Application_Start(object sender, EventArgs e) { // Code that runs on application startup RegisterRoutes(RouteTable.Routes); } public static void RegisterRoutes(RouteCollec

对,我在Global.asax中使用application_start事件,如下所示:

void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup
        RegisterRoutes(RouteTable.Routes);

    }

    public static void RegisterRoutes(RouteCollection routes)
    {
        var context = new QuestionEntities();
        var questionquery = from c in context.Questions where c.Alias != null select c;

        string alias = "";
        foreach (Question q in questionquery.ToList())
        {
            try
            {
                alias = q.QuestionText.Replace(" ", "-").Replace("?", "").ToLower();
            }
            catch { }
            routes.MapPageRoute("", alias, "~/Default.aspx");
        }

        routes.MapPageRoute("", "home", "~/Default.aspx");
        routes.MapPageRoute("", "rss", "~/rss.aspx");
    }
这一切都很好,但当我创建一个新问题并添加一个别名时,它不会重新出现。我已经尝试停止和启动网站。是否有办法强制重新启动此事件

我使用的是reinvent主机,所以没有直接访问IIS的权限来重新设置它的样式

谢谢你的帮助
Rob

应用程序\u仅在应用程序池启动后首先启动第一个请求。当bin文件夹或web.config中发生更改时,应用程序池将重新启动。否则,尽管您的代码不会启动

要执行您想要的操作,您可能需要一个IHttpModule,或者在每个请求上运行的其他东西


或者,您可能需要一条catchall路线。使用
{*catchall}
作为路径。

Andy-谢谢,午餐后我会看一看,然后再给你回复。