2012-11-25 5 views
0

У меня есть простая маршрутизация для раздела новостей на моем сайте. Маршрутизация работает отлично для почти всех URL, какASP.net 4.0 Маршрутизация не работает с основным доменным именем

http://www.abc.com/Default.aspx

http://www.abc.com/Default.aspx?PageId=3

http://www.abc.com/Latest-News-Details.aspx?PageID=28&NewsID=39

Проблема только происходит, когда я пытаюсь получить доступ к веб-сайт с http://www.abc.com для некоторых причина перенаправляет его на страницу пользовательских ошибок, я не могу отслеживать ошибку в источнике & Я не могу создать такую ​​ошибку на моем локальном хосте.

Пример кода

global.asx файл

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


public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.Ignore("{*allaspx}", new { allaspx = @".*\.aspx(/.*)?" }); 
    routes.Ignore("{*allcss}", new { allcss = @".*\.css(/.*)?" }); 
    routes.Ignore("{*alljpg}", new { alljpg = @".*\.jpg(/.*)?" }); 
    routes.Ignore("{*alljs}", new { alljs = @".*\.js(/.*)?" }); 
    routes.Add(new System.Web.Routing.Route("{resource}.css/{*pathInfo}", new System.Web.Routing.StopRoutingHandler())); 
    routes.Add(new System.Web.Routing.Route("{resource}.js/{*pathInfo}", new System.Web.Routing.StopRoutingHandler())); 

    ////For News 
    routes.MapPageRoute("NewsRoute", "{NewsID}/{PageID}/{NewsTitle}", "~/Latest-News-Details.aspx", false, 
     new RouteValueDictionary { 
        { "NewsID", "0" }, 
        { "PageID", "0"}, 
        { "NewsTitle", "event-not-found" }}, 
     new RouteValueDictionary { 
        { "NewsID", "[0-9]{1,8}" }, 
        { "PageID", "[0-9]{1,8}" } 
       }); 
} 

Сейчас я отключил маршрутизацию раздел новостей по-прежнему он генерирует ошибку, если я оставить выше маршруты код ООН комментируется.

Я не уверен, что вызывает проблему.

как я могу обрабатывать корень для домена по умолчанию, как http://www.abc.com

Я был бы признателен за помощь в этом отношении

+0

у вас есть e, установленный в IIS? – pkmiec

+0

Он работает, если маршрутизация отключена, я думаю, проблема связана с путём – Learning

ответ

0

Решенный вопрос путем создания другого маршрута для обработки http://www.abc.com

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.Ignore("{*allaspx}", new { allaspx = @".*\.aspx(/.*)?" }); 
    routes.Ignore("{*allcss}", new { allcss = @".*\.css(/.*)?" }); 
    routes.Ignore("{*alljpg}", new { alljpg = @".*\.jpg(/.*)?" }); 
    routes.Ignore("{*alljs}", new { alljs = @".*\.js(/.*)?" }); 
    routes.Add(new System.Web.Routing.Route("{resource}.css/{*pathInfo}", new System.Web.Routing.StopRoutingHandler())); 
    routes.Add(new System.Web.Routing.Route("{resource}.js/{*pathInfo}", new System.Web.Routing.StopRoutingHandler())); 

    routes.MapPageRoute(
     "HomeRoute", 
     "", 
     "~/Default.aspx" 
    ); 

    ////For News 
    routes.MapPageRoute("NewsRoute", "{NewsID}/{PageID}/{NewsTitle}", "~/Latest-News-Details.aspx", false, 
     new RouteValueDictionary { 
        { "NewsID", "0" }, 
        { "PageID", "0"}, 
        { "NewsTitle", "News-not-found" }}, 
     new RouteValueDictionary { 
        { "NewsID", "[0-9]{1,8}" }, 
        { "PageID", "[0-9]{1,8}" } 
       }); 
} 

Это странно для меня как та же маршрутизация, работающая на другом веб-сайте, с созданием другой ролики для обработки такого запроса http://www.abc.com

Смежные вопросы