У нас есть приложение ASP.Net MVC 4, которое мы пытаемся развернуть на машине с Windows 2003, на которой работает IIS 6. У нас оно работает в отдельном пуле приложений и настроено на использование asp.net 4.0. У нас есть сопоставление приложения подстановочного знака с aspnet_isapi.dll, которое требуется для отображения страницы.
Проблема, с которой мы столкнулись, заключается в том, что пакет, который является частью asp.net mvc 4, не работает. Когда вы пытаетесь перейти по ссылке / js? V = ASDfljkFSDlkjDSF, вы получаете ответ 404.
Мы знаем, что он использует URL-адреса без расширений, но они должны обрабатываться сопоставлением приложения Wildcard, если я не ошибаюсь?
У кого-нибудь это работает или есть идеи?
Я знаю, что это было некоторое время назад, но у меня была эта проблема в приложении веб-форм с использованием таблиц пакетов. Он работал как собственный сайт, а не в виртуальном каталоге. IIS понятия не имел, где взять пакеты (как сказал ShaneC).
В свойствах виртуального каталога -> Конфигурация -> Сопоставления я вставил запись с подстановочными знаками в «C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_isapi.dll» и снял флажок, чтобы убедиться, что файл существует.
Это сработало для меня.
Проблема заключалась в том, что мы работали как виртуальный каталог, настроенный для ASP.Net 4.0, на веб-сайте по умолчанию, который был настроен для ASP.Net 2.0.
Мы создали новый веб-сайт и установили для него asp.net 4.0, и все работало отлично. Согласно этому сообщению на Haacked URL-адреса без расширений теперь должны работать в большинстве экземпляров IIS 6.
IIS6 не будет знать, какие обработчики будут обслуживать запрос URL-адреса расширения, например /js?blahblahblah
, поэтому он предполагает, что файл статический, ищет его, не может найти и возвращает 404.
Проверять, выписываться эта почта для обходного пути