Очевидно, что что-то не хватает, я не могу развернуть простую ASP.NET MVC 4, приложение .NET 4.5 на Windows Small Business Server 2008 на IIS 7.
Установлена .NET framework 4.5.
Должен ли я предполагать, что эта версия (4.5) в базовых настройках приложения пула приложения (4.5) приложения? На данный момент у меня только 2.0 и 4.0, поскольку 4.5 похож на 3.5, которые добавляются только в рамки 4.0, я думаю, это нормально.
Когда я просматриваю домашнюю страницу, я получил следующую ошибку:
403 - Запрещено: доступ запрещен. У вас нет разрешения на просмотр этого каталога или страницы, используя предоставленные вами учетные данные.
Когда я запрашиваю единственный контроллер с именем Page/page/index, я получаю страницу 404, не найденную. Как и процесс ASP.NET, никогда не получите HTTP-запрос.
Я могу запросить простую HTML-страницу.
Пул приложений установлен в .NET 4.0 и интегрирован как режим управляемого конвейера.
NETWORK SERVICE имеет доступ для чтения/записи в каталог.
Приложение работает безупречно от VS2012, конечно.
Я не знаю, что здесь не так, и поисковые запросы не помогают.
Есть ли у кого-нибудь намек, который будет чрезвычайно оценен. Благодаря
Edit
DLL файлы уже находятся в папке bin, например System.Web.Mvc, System.Web.Razor и т.д.
Я создал пустую страницу test.aspx, чтобы убедиться, что рабочий процесс asp.net получил запрос, и да, страница была в порядке. Таким образом, похоже, что маршрутизация MVC не работает, хотя у меня есть веб-приложение ASP.NET MVC 3, работающее нормально на этом сервере.
После установки .NET 4.5 я сделал aspnet_regiis -iru в случае, добавив в приложение папку aspnet_client, но все же это не устраняет проблему.
Анонимная аутентификация включена в разделе проверки подлинности IIS, а показ авторизации разрешает всем пользователям.
ASP.NET MVC 4 установлен, я просто сделал ремонт, чтобы убедиться.
Несмотря на то, что ASP.NET MVC 4 установлен, ошибка 404, запрашивающая действие /page/index, возвращается стандартным IIS, а не стандартной ошибкой aspnet. И действительно, похоже, что структура MVC 4 не установлена должным образом, я просто дважды проверю и сделаю ремонт. Где я могу продолжить расследование?
@Mystere Man, я изменил анонимную аутентификацию, чтобы использовать идентификатор пула приложений, остановить, запустить приложение и по-прежнему ту же ошибку. Это действительно выглядит, если ASP.NET MVC 4 не принимает запрос.
Вот часть web.config:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>
Изменить 2012/09/27
Я воссоединил Microsoft Framework.NET 4.5 и восстановил ASP.NET MVC 4, повторно развернул простое приложение ASP.NET MVC 4, и я по-прежнему получаю такое же поведение. Я не уверен, что делать дальше, поэтому я начал щедрость в надежде, что кто-то поможет мне найти проблему.
Изменить 2014/01/31
Когда я задал этот вопрос, я поместил runAllManagedModulesForAllRequests в качестве принятого ответа, потому что он действительно решил проблему. Но я не собирался использовать это в производстве. Я спрашиваю, почему я должен был это сделать, и у меня не было никаких ответов.
Than Ответ Martin Hollingsworth был действительно тем, что я искал, хорошим способом решить эту проблему без всех проблем с производительностью, связанных с runAllManagedModulesForAllRequests.
Мы почти сдались и купили новый сервер Windows 2012 (из которого работает приложение ASP.NET MVC, как есть). После попытки решения Martin работал сервер Windows 2008.