Ответ 1
Попробуйте
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Через
https://serverfault.com/questions/405395/unable-to-get-anything-except-403-from-a-net-4-5-website
Я создал веб-приложение ASP.NET MVC4.net4.5, которое отлично работает локально (IIS Express и dev-сервер), но как только я развожу его на свой веб-сервер, он выдает ошибку 403. Я установил .Net 4.5RC на сервер и даже попробовал
aspnet_regiis -i
бит, который все рекомендовали для своих проблем с предыдущими версиями MVC/.Net, но это не помогло.
Любые идеи?
ИЗМЕНИТЬ: Подробнее о ситуации. Сервер 32-битный, и у меня есть еще 4 приложения MVC3, которые работают нормально. Это просто мое приложение MVC4, которое не работает.
Попробуйте
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Через
https://serverfault.com/questions/405395/unable-to-get-anything-except-403-from-a-net-4-5-website
Ошибка 403.14 - это код ошибки HTTP для того, чтобы не было разрешено перечислить содержимое каталога. Пожалуйста, убедитесь, что
Обычно a и d являются самыми большими проблемами, связанными с развертыванием MVC в IIS
Возможно... Если вам придётся использовать мастер публикации (как и я) и установите флажок "Прекомпилировать во время публикации" (как и я) и увидим те же симптомы...
Да, я избил себя над головой, но, сняв флажок, похоже, несвязанная настройка, все описанные симптомы уходят после перераспределения.
Надеюсь, это исправит некоторых людей.
Windows- > Пуск → Включение и выключение функций вложений
Убедитесь, что вы указали необходимые параметры в
Перед применением
runAllManagedModulesForAllRequests="true"/>
рассмотрим приведенную ниже ссылку, которая предлагает менее радикальную альтернативу. В сообщении автор предлагает следующее изменение локальному web.config:
<system.webServer>
<modules>
<remove name="UrlRoutingModule-4.0" />
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
</modules>
http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html
Существует Refactor → Переименуйте ошибку в Visual Studio 2012, которая неправильно переименовала "id" внутри литерального строкового значения параметра url в моем RouteConfig.cs. Это вызвало 403.14 в новой и в противном случае правильной настройке как в Windows Server 2012, так и в Windows Server 2008 R2.
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
был изменен на
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{renamed_text}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Если вы используете IIS 8.5 в Windows 8 или Server 2012, вы можете обнаружить, что запуск mvc 4/5 (.net 4.5) не работает в виртуальном каталоге. Если вы создаете запись локального хоста в файле хоста, чтобы указать на свой локальный компьютер, а затем укажите новый локальный веб-сайт IIS в эту папку (с соответствующей записью заголовка узла), вы обнаружите, что она работает тогда.
Вы также можете получить 403, если при тестировании с помощью dev-сервера вы используете интегрированный конвейер, а затем установите в качестве классического режима конвейера на своем реальном веб-сервере IIS 7.5, также мне не хватает папки app_data, которая также потребовалась
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
U может использовать код выше
Я установил новый пул приложений приложений в DefaultAppPool
в IIS, который, очевидно, использует конвейер Classic
с .NET v.2.0
.
Чтобы решить проблему, я создал новый пул приложений, используя конвейер Integrated
и .NET v4.0
. просто для этого нового приложения, а затем все приступило к работе, как ожидалось.
Не забудьте назначить этот новый пул приложений для приложения. Выберите приложение в IIS, нажмите Basic Settings
, а затем выберите новый пул приложений для приложения.
тот, который я вижу чаще всего, - это IIS и позволяет запускать 32-битные приложения
Это то, что вы пробовали. в противном случае нам нужна дополнительная информация о версиях продуктов и dev-серверов.
У меня немного другая проблема, на сервере 2012 почему-то я забыл включить asp.net 4.5, поэтому, если у вас есть эта проблема, дважды проверьте, что вы ее включили.
Я запускаю Windows Server 2012 R2 на Azure и ASP.NET 4.5, IIS 8
Я решил эту проблему, удалив все элементы ASP.NET в "Программы и компоненты", а затем переустановив ASP.NET, как это, с помощью "Диспетчер серверов" с помощью "Добавить роли и функции": выбрана установка на основе ролей или на основе компонентов, выбран мой сервер, а затем для выбранного сервера, выбранного веб-сервера (IIS)/веб-сервера/разработки приложений, затем щелкните ASP.NET 4.5, подтвердите установку необходимого условия и затем переустановите ASP.NET 4.5.
Мои предыдущие поисковые запросы заставили меня поверить, что проблема связана с проблемой регистрации с ASP.NET. С более ранними версиями ASP.NET на самом деле есть утилита, которую вы можете запустить для регистрации ASP.NET без переустановки, но она больше не доступна.
Я решаю проблему, открывая визуальную студию, расширяя ссылки и меняя свойство "Копировать локальное" на "True".
Я обнаружил это, сравнивая DLL старой версии с Dll моей новой версии (которая не работала)
В моем случае моей страницей по умолчанию для приложения был index.html, отсутствующий в параметрах документа по умолчанию. При добавлении исправлено 403.14 Запрещенная ошибка.
В моем случае проблема была вызвана пользовательским ActionFilterAttribute, который был своего рода глобальным атрибутом фильтра. Атрибут создавал службу через Autofac, но служба разбилась на конструктор:
public ActionFilterAttribute()
{
_service = ContainerManager.Resolve<IService>();
}
public class Service: IService
{
public Service()
{
throw new Exception('Oops!');
}
}
В моем случае ни функции Windows, ни aspnet_regiis -i
не выполняли эту работу. После нескольких часов работы в Интернете я сделал свое решение:
В диспетчере IIS в модулях я изменил наследование на локальный в UrlRoutingModule-4.0 node:
В web.config я вставлял несколько советов с этого форума:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="UrlRoutingModule-4.0"></remove>
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition=""></add>
</modules>
</system.webServer>
Надеюсь, что это поможет