ASP.net Маршрутизация результатов в 404 - PullRequest
1 голос
/ 21 января 2010

Я определил маршрут в Application_Start, как было сказано во многих руководствах

RouteTable.Routes.Add(
            "Files",
            new Route("Files/Art",
                new FileRouteHandler()));

И создал мой собственный RouteHandler. Однако, похоже, это не работает вообще.

Когда я отлаживаю приложение, я вижу (через точку останова), что маршрут добавляется, однако при переходе к «http://localhost/MyApplication/Files/Art" я получаю браузер 404 (не ASP.net 404).

Когда я помещаю точку останова в обработчик маршрутов, она не прерывается при доступе к URL. Точка останова в Application_BeginRequest также не прерывается при доступе к URL.

Это проблема, но я полностью понимаю, почему я получаю универсальный 404. Откуда IIS узнает, что обрабатывать этот URL с помощью asp.net, в конце концов, его на самом деле не существует ??

Что мне здесь не хватает?

Ответы [ 2 ]

1 голос
/ 22 января 2010

Я знал, что это проблема с веб-сервером ...

http://www.asp.net/%28S%28pdfrohu0ajmwt445fanvj2r3%29%29/learn/mvc/tutorial-08-vb.aspx

Краткий ответ: В IIS 6 и ниже (в моем случае 5.1) путь, такой как «Файлы / Искусство», не работает. Он не будет передан на ASP.net. Однако такой путь, как «Files.svc / Art», будет работать.

Дело в том, что IIS 6 и ниже требует расширения файла, чтобы знать, какой подключаемый модуль ISAPI использовать. В моем случае ".svc" настроен на использование ASP.net.

Надеюсь, что это имеет смысл ...

1 голос
/ 21 января 2010

Убедитесь, что у вас UrlRoutingModule установлен и настроен в web.config. Нечто похожее на то, что показано ниже:

<system.web> 
      ... 
      <httpModules> 
         ... 
         <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
      </httpModules>
   </system.web> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...