2011-03-07 3 views
0

바로 내가 지금처럼 Global.asax에있는 Application_Start 이벤트를 사용하고 있습니다 :.NET 4.0 경로 및 위해 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"); 
    } 

이 모두 괜찮지 만, 나는 새로운 질문을 만들 별칭을 추가 할 때,이 refire하지 않습니다. 나는 멈추고 웹 사이트를 시작했다. 이 이벤트가 재개되도록하는 방법이 있습니까?

저는 재발견 호스팅을 사용하고 있으므로 IIS에 직접 액세스 할 필요가 없습니다. 당신의 도움이 롭

답변

0

위해 Application_Start 만 먼저 첫 번째 요청에 대한

주셔서 감사합니다 응용 프로그램 풀 시작 후. bin 폴더 또는 web.config의 변경 사항에 따라 응용 프로그램 풀이 다시 시작됩니다. 그렇지 않으면 코드가 실행되지 않습니다.

원하는대로하려면 IHttpModule 또는 각 요청에서 실행되는 다른 프로그램이 필요할 것입니다.

또는 catchall 경로가 원하는 경로 일 수 있습니다. 경로에 {*catchall}을 사용하십시오.

+0

Andy - 점심 식사를 한 후 나중에 다시 보도록하겠습니다. – Robert