Как ошибка 404 asp.net MVC 2 IIS 7? - PullRequest
2 голосов
/ 08 июня 2010

Я пытался поймать 404 ошибки, такие как this ... Но

  1. , когда я пытаюсь загрузить http://localhost:11415/wfwe/wefwe/ - все хорошо.
  2. Когда я пытаюсь загрузить http://localhost:11415/order/ - сбой (с ошибкой RouteData должен содержать элемент с именем 'action' с непустым строковым значением .)
  3. Когдая пытаюсь загрузить http://localhost:11415/Images/ - ошибка с ошибкой Файл не существует

Мои маршруты:

      routes.Add("Order", new LowercaseRoute("Order/{action}/{id}",
                                               new RouteValueDictionary(
                                                   new
                                                       {
                                                           controller = "Order",
                                                           action = "",
                                                           id = UrlParameter.Optional
                                                       }),
                                               new MvcRouteHandler()));
routes.Add("NotFound", new LowercaseRoute("{*url}", new RouteValueDictionary(
                                                 new
                                                 {
                                                     controller = "Pages",
                                                     action = "Http404",
                                                 }),
                                             new MvcRouteHandler()));

Почему маршрут NotFound - не поймать все 404 ошибки.И когда я пытаюсь загрузить на свой хостинг и пробовать 404, я получаю эту ошибку (Не найденный маршрут вообще не работает) 404 - Файл или каталог не найден.Ресурс, который вы ищете, мог быть удален, изменилось его имя или временно недоступен.

Я работаю с этим весь день, но не очень ... пожалуйста, помогите мне

Ответы [ 2 ]

2 голосов
/ 08 июня 2010

Я делаю это:

  routes.Add("NotFound", new LowercaseRoute("{*url}", new RouteValueDictionary(
                                                 new
                                                 {
                                                     controller = "Pages",
                                                     action = "Http404",
                                                 }),
                                             new MvcRouteHandler()));

и это в web.config

 <customErrors mode="On">
 </customErrors>

и

<modules runAllManagedModulesForAllRequests="true"/>
<handlers/>
<httpErrors>
  <remove statusCode="404"/>
  <error statusCode="404" path="/page/http404/" responseMode="ExecuteURL"/>
</httpErrors>

Это работает так, как я хочу.

2 голосов
/ 08 июня 2010

Когда я пытаюсь загрузить http://localhost:11415/order/ - сбой (с ошибкой RouteData должен содержать элемент с именем 'action' с непустым строковым значением.)

Из-за этого:

new {controller = "Order", action = "" , id = UrlParameter.Optional}

Вам необходимо указать действие.

Когда я пытаюсь загрузить http://localhost:11415/Images/ - ошибка с ошибкой Файл не существует

Если на вашем сервере есть папка Images, она будет «перехватывать» запросы, не пропуская их в конвейер MVC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...