Получение 404 при развертывании ASP.Net MVC на сервере 2012 и IIS 8

Я пробовал каждое исправление, которое я мог найти в Интернете, и ни одно из них не сработало.

Я добавил на сервер роли asp.net 4.5 и 3.5.

Я добавил runAllManagedModulesForAllRequests в файл web.config.

Я установил MVC с сайта asp.net. Я не уверен, что еще нужно установить.

Вот web.config

<?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=301880
  -->
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <connectionStrings>
    <add name="DefaultConnection" connectionString="Redacted" providerName="System.Data.SqlClient" />
  </connectionStrings>
  <appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>
  <system.web>
    <customErrors mode="Off" />
    <machineKey validationKey="96820F5717A865002768570C77EC72BBBC16CD2BDBC3D6BD494F4F4734F903FEBDA99E0A694ADB5B2A6D9347FB60BE00F1BF618062DA36C8A378B0B274B80390" decryptionKey="71AA018320CA48F100A58E38285B3AEE7C2E21001C1ASDD1" validation="SHA1" />
    <authentication mode="None" />
    <compilation targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
    <pages>
      <namespaces>
      </namespaces>
    </pages>
  </system.web>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="FormsAuthenticationModule" />
    </modules>
        <defaultDocument>
            <files>
                <clear />
                <add value="default.aspx" />
                <add value="Default.htm" />
                <add value="Default.asp" />
                <add value="index.htm" />
                <add value="index.html" />
                <add value="iisstart.htm" />
            </files>
        </defaultDocument>
  </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-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
</configuration>

person Jhorra    schedule 12.04.2014    source источник
comment
Можете ли вы добавить скриншот сообщения 404, а также показать, как выглядят ваши настройки установки IIS? Например, мои настройки выглядят так: скриншот настроек   -  person Ryan Taylor    schedule 14.04.2014


Ответы (6)


Не зная, какой компонент выдает ошибку 404 (может быть, IIS или ASP.NET), моя первая мысль заключается в том, что .net не зарегистрирован в IIS, по крайней мере, не в последней версии. Если IIS выдает ошибку 404, это будет выглядеть примерно так: http://imgur.com/7crGkNg

Если ASP.NET работает правильно, ошибка 404 будет выглядеть примерно так: http://imgur.com/MIVYSNv.

Если вы получаете ошибку 404 от IIS, попробуйте повторно запустить aspnet_regiis.exe -i. В моей системе Windows 8 путь находится здесь: "C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe"

Подробнее здесь: http://msdn.microsoft.com/en-us/library/k6h9cz8h(v=vs.100).aspx

person Ryan Taylor    schedule 12.04.2014
comment
Я получаю вторую ошибку. Я выполнил команду обновления, которую вы посоветовали, но все равно получаю ошибку 404. Этот же сайт нормально работает на другом сервере с 2008r2, поэтому я уверен, что это проблема настроек IIS. - person Jhorra; 13.04.2014

По умолчанию в Windows 8 IIS не будет устанавливать ASP.NET, поэтому перейдите в раздел «Включение/выключение функций Windows» и в разделе «Проверка IIS» -> «Всемирные веб-службы» -> «Функции разработки приложений» -> ASP.NET 4.5.

Это сработало для меня.

person Dexterslab    schedule 12.11.2016

Как бы просто это ни звучало, если runAllManagedModulesForAllRequests и права доступа к каталогу IIS не решают вашу проблему... попробуйте полностью стереть и повторно развернуть сайт.

person Mike_Matthews_II    schedule 01.06.2015

Мне пришлось установить службу роли «Аутентификация сопоставления сертификата клиента IIS» для IIS, чтобы устранить эту ошибку. На моем сайте настроена проверка подлинности сертификата клиента.

person blizz    schedule 29.04.2016

У меня была такая же проблема, как вы описываете. Я долго искал на разных ресурсах и перепробовал все, что мог. Но решение было таким простым...

Я открыл Global.asax.cs, поместил код в метод «Application_Start (отправитель объекта, EventArgs e)» в блоке try_catch. Затем я прикрепил свой проект к w3wp.exe и поставил точку останова в Global.asax.cs. Я перестроил веб-приложение и попытался вызвать свой сайт из браузера. Когда я попал в точку останова, я нажал F5 и получил сообщение об ошибке в своем блоке Catch.

Моя проблема была в некоторых отсутствующих dll, хотя проект собирался без каких-либо предупреждений или ошибок. Кроме того, у меня была ссылка на NPGSQL и на некоторые другие мои dll, в которых есть ссылка на NPGSQL. И версия NPGSQL в WebApp отличалась от версии в другой моей dll. Так что это тоже вызвало проблему.

Просто попробуйте отладить запуск вашего веб-приложения, надеюсь, это вам поможет.

person daewoosh    schedule 21.04.2017

Проверьте привязки сайта в IIS. Убедитесь, что вы не привязываетесь к системному порту или другому порту, который может использоваться, что может привести к коллизии. Как правило, порты с более высокими номерами используются с меньшей вероятностью.

Список назначений портов:

https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml

person Tawab Wakil    schedule 02.11.2017