asp.net mvc обрабатывает все запросы? - интегрированный режим iis 7 - PullRequest
2 голосов
/ 08 апреля 2009

У меня есть сайт, созданный с использованием asp.net mvc, работающий на IIS 7 в интегрированном режиме. Я заметил, что когда я набираю mysite.com/test.html, я получаю ответ. IControllerFactory не возвращает контроллер для контроллера с именем 'test.html'.

То, что я должен был получить, было ошибкой 404, и это должно быть обработано Статическим обработчиком IIS7.

Теперь, что мне интересно, обслуживает ли обработчик asp.net mvc все? (css, images, zip-архивы) вместо статического обработчика файлов.

Если это так, то есть способ обойти это, чтобы статический обработчик обслуживал файлы с расширениями. В противном случае это кажется большой проблемой производительности.

1 Ответ

2 голосов
/ 28 февраля 2011

По умолчанию ASP.NET MVC будет обрабатывать все запросы, поскольку маршрутизация предназначена для обработки любых путей. Вы можете специально исключить определенные пути, используя метод IgnoreRoute, например, в Global.asax:

public static void RegisterRoutes(RouteCollection routes)
{
    // This is already added by MVC
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    // Ignore any htm files
    routes.IgnoreRoute("{filename}.htm");

    // Other routes
    // ...
}

Я подозреваю, что это все равно приведет к тому, что запросы будут проходить через ASP.NET (хотя я подозреваю, что они "провалится" довольно быстро). Если это проблема, вы можете попробовать изменить настройки web.config, чтобы вообще не передавать запросы в ASP.NET:

<modules runAllManagedModulesForAllRequests="false" />

Однако вам нужно точно указать, какие запросы вы хотите проходить через ASP.NET.

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