Назад | Перейти на главную страницу

Должны ли действия .NET MVC 3 запускать w3wp.exe для генерации ошибок монитора процессов «ПУТЬ НЕ НАЙДЕН» и «ИМЯ НЕ НАЙДЕН»?

Я спросил об этом в Stack Overflow, но было предложено, чтобы я также спросил об этом здесь, поскольку это может быть связано с IIS:

Если я создаю готовое веб-приложение ASP.NET MVC 3 (непустое, Razor, без модульных тестов) и развертываю его на сайте IIS 7.5 (.NET 4, Integrated Pipeline), каждое действие контроллера я Триггер вызывает массу ошибок «имя не найдено» и «путь не найден» в procmon.

Процесс w3wp.exe пытается посетить места в файловой системе, которые механизм маршрутизации MVC должен выбрать и обработать. Это небольшая часть журнала procmon после однократного щелчка по ссылке «LogOn»:

Это ожидаемое поведение? Мне это кажется неправильным.

Я столкнулся с этим, потому что загрузка ЦП моего сервера была привязана к 100%. Один из моих вызовов происходил достаточно часто (вызывая ошибку «Путь не найден»), что потребляло ресурсов ЦП. Как только я создал папку файловой системы по пути, к которому он пытался получить доступ, загрузка процессора упала до 0%. (~ 85 одновременных пользователей на сайте в обоих случаях).

Это нормально.

Каждый файл просмотра (.cshtml представляет собой представление Razor с использованием C #) может находиться в нескольких хорошо известных местах (это позволяет использовать несколько механизмов представления в проекте и в общем коде). В первый раз, когда контроллеру требуется представление, его нужно найти.

Повторные запросы для одного и того же представления не должны вызывать дальнейших поисков, но среда выполнения ASP.NET MVC обнаружит обновления: проверьте, что файл (включая сборки проекта) не имеет дат в будущем или что-то вызывает перезапуск AppDomain.