ASP.NET MVC 2 в IIS 6 просто работает с.NET 4

Я установил подстановочный знак в виртуальном каталоге в IIS 6 Windows Server 2003, указывая на C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll, но он не работал. Затем я пытаюсь установить в C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll, и он работал нормально. Но я не хочу, чтобы это работало в v4, потому что у меня есть другие приложения в том же пуле приложений, которые должны работать в.NET2.

Я сделал это пошаговое руководство, которое я нашел лучше, но оно продолжает работать только с.NET 4.

Мое решение на данный момент - установить новую VirtualDirectory, которая имеет AppPool с версией.NET 4. Но это не кажется правильным, потому что для MVC2 должно быть достаточно.NET35 SP1.

Кто-нибудь сталкивался с этой проблемой?

Это должно работать с 3.5... Я использую Reflector, чтобы проверить, есть ли какая-либо dll, которая использует.NET 4, которая может испортить это, но я не нашел ни одного.

Спасибо!

2 ответа

Решение

Я следовал многим подобным инструкциям, но ни один из них не работал. На самом деле они работали, если я указываю на C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll. Нет смысла указывать на vap isapi, поскольку предполагается, что в.NET 4 ничего нет.

Я пытаюсь найти некоторые.dll, которые, возможно, подталкивали приложение для работы в.NET4 вместо 3.5, но я не смог найти ни одного.

Решением этой проблемы был переход на MVC 3 и использование прозрачного.NET4, без сомнения, отлично работающего и самой последней версии.

Все хорошо сейчас, но нет реального решения проблемы выше.

Мне удалось заставить его работать в IIS6 на ASP версии 2 и framework 3.5, следуя некоторым инструкциям на http://go.microsoft.com/?LinkId=9394801.

У меня есть виртуальный каталог, который добавляет новое расширение.* И исполняемый файл C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll и снял флажок "проверить, существует ли файл" в разделе "Конфигурация" на вкладке "Виртуальный каталог". кнопка После приведенных ниже обновлений приложение mvc работало без указания каких-либо расширений, таких как.mvc или.aspx. Я не проверял, не вызвало ли это снижение производительности.

Мой файл global.asax.cs по умолчанию теперь выглядит как

        routes.MapRoute(
            "Default",
            "{controller}/{action}/{id}",
            new { action = "Index", id = "" }
        );

        routes.MapRoute(
              "Root",
              "",
              new { controller = "Home", action = "Index", id = "" }
        );

ASP2 не распознал тег <%: script, поэтому мне пришлось удалить их и обернуть содержимое с помощью Response.Write (). Например

<li><%: Html.ActionLink("Home", "Index", "Home") %></li>

становится

<li><% Response.Write(Html.ActionLink("Home", "Index", "Home")); %></li>
Другие вопросы по тегам