Развертывание веб-сайта: 500 - внутренняя ошибка сервера

Я пытаюсь развернуть ASP.NET применение. Я развернул сайт в IIS, но при посещении его с помощью браузера он показывает мне следующее:

Ошибка Сервера

500 - Внутренняя ошибка сервера.

есть проблема с ресурса, который вы ищете, и он не может быть отображен.

после возиться с сетью.config, теперь я получаю:

страница не может быть отображена, потому что произошла внутренняя ошибка сервера.

Как я могу увидеть фактическую проблему за этой ошибкой сервера?

20 ответов


во-первых,вам нужно включить и посмотреть подробные ошибки веб-сообщения, поскольку это сообщение не дает информации о том, что на самом деле происходит по соображениям безопасности.

С подробной ошибкой вы можете найти реальную проблему здесь.

кроме того, если вы можете Запустите браузер на сервере, вы получаете подробную информацию об ошибке, потому что сервер распознает, что вы локальный и показывает его вам. или если вы можете прочитать log сервера с помощью средства просмотра событий можно также увидеть подробности ошибки.

On IIS 6

<configuration>
    <system.web>
        <customErrors mode="Off"/>
        <compilation debug="true"/>
    </system.web>
</configuration>

на IIS 7

<configuration>
    <system.webServer>
        <httpErrors errorMode="Detailed" />
        <asp scriptErrorSentToBrowser="true"/>
    </system.webServer>
    <system.web>
        <customErrors mode="Off"/>
        <compilation debug="true"/>
    </system.web>
</configuration>

Примечание: вы можете избежать Debug=true. Вам нужно только закрыть пользовательские ошибки и получить подробную страницу об ошибке.

ссылки: включение пользовательских сообщений об ошибках Windows на иди Папин помогите статьи.

кроме того, это может помочь: Как включить подробные сообщения об ошибках (через IIS).


я вытаскивал волосы из-за этого вопроса. Убедитесь, что следующая запись была в корне web.config файл исправил это для меня:

<configuration>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
  </system.webServer>
</configuration>

помните, что вы должны добавить это к существующему XML элементы, если они уже есть. Вы не можете просто добавить в конце файла, потому что вы не можете иметь несколько копий любого элемента.


Я, наконец, решил эту ошибку "500 внутренний сервер" при развертывании ASP.NET приложение MVC 3.0 на godaddy.ОСМ хостинга.

как-то были расхождения в версии DLL-файлов, на которые ссылаются, и версии, указанной в файле web.config.

я попробовал все варианты, упомянутые в различных форумах. Ничего не помогло, хотя все предлагали одно и то же исправление, но почему-то это не сработало в моем сценарии. Наконец-то, после двух дней ударов головой. Я решил чтобы удалить все ссылки на DLL-файл и удалить web.cofig (сделать локальную копию) из проекта и пусть приложение выдает ошибку, а затем добавляет DLL-файлы один за другим, делая копию в local=true.

после добавления всех DLL-файлов я создал новый ASP.NET приложение MVC и скопировал веб.конфигурация нового приложения для моего фактического приложения. Таким образом, мое фактическое приложение теперь имеет новую сеть.config, а затем я скопировал connectionstring и другие ссылки из локальной копии сеть.config, который я спас.

Я просто скомпилировал приложение и опубликовал его в локальной папке и FTP опубликованную папку goDaddy.

Он работал, и, наконец, моя проблема была решена.


для меня следующий код в web.конфиг был виновником. Когда я удалил его, веб-сайт работал нормально.

  <staticContent>
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
  </staticContent>

в моем случае, я положил ошибку в моем . Ключ приложения каким-то образом был помещен под тег . Но мне интересно, почему он не отображает ошибку конфигурации. Ошибка 500 слишком универсальна для исследования проблемы.


моя первая попытка опубликовать, а затем запустить очень простой сайт, обслуживающий только HTML " страница не может быть отображена, потому что произошла внутренняя ошибка сервера."

проблема: у меня был установлен сайт .NET 3.5 в Visual Studio (щелкните правой кнопкой мыши проект веб-сайта - > страницы свойств - > сборка), но веб-сайт в Azure настроен как .NET 4.0. Упс! Я изменил его на 3.5 в Azure, и это сработало.


в дополнение к другим предложениям обязательно измените existingResponse атрибут httpErrors узел Auto С Replace, или полностью удалить это свойство.

<httpErrors existingResponse="Replace" />
                              ^^^^^^^ not going to work with this here

IIS также сообщает код состояния 500 без каких-либо подсказок журнала событий, если недостаточно разрешений на физический домашний каталог (т. е. IIS_IUSRS не имеет доступа).


наверное веб.файл config неверен или отсутствует какой-либо тег. Я решил свою проблему, используя правильные теги конфигурации для .NET 4.

<system.web>
    <compilation debug="true" strict="false" explicit="true" targetFramework="4.0">
        <assemblies>
            <add assembly="System.Deployment, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        </assemblies>
    </compilation>
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
        <namespaces>
            <clear/>
            <add namespace="System"/>
            <add namespace="System.Collections"/>
            <add namespace="System.Collections.Specialized"/>
            <add namespace="System.Configuration"/>
            <add namespace="System.Text"/>
            <add namespace="System.Text.RegularExpressions"/>
            <add namespace="System.Web"/>
            <add namespace="System.Web.Caching"/>
            <add namespace="System.Web.SessionState"/>
            <add namespace="System.Web.Security"/>
            <add namespace="System.Web.Profile"/>
            <add namespace="System.Web.UI"/>
            <add namespace="System.Web.UI.WebControls"/>
            <add namespace="System.Web.UI.WebControls.WebParts"/>
            <add namespace="System.Web.UI.HtmlControls"/>
        </namespaces>
    </pages>
    <authentication mode="None"/>
</system.web>

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

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

надеюсь, это кому-то поможет.


500 внутренняя ошибка сервера может возникнуть по нескольким причинам. Первой причиной может быть эта паутина.файл конфигурации не создан должным образом, означает, что вы пропустили какой-то тег в интернете.конфигурационный файл. Во-вторых, эта ошибка может быть вызвана некоторой проблемой кода. Чтобы проверить, какой компонент веб-приложения вызывает эту ошибку, можно проверить параметр приложения в web.конфигурационный файл. Подробности решения и трассировки 500 внутренних ошибок сервера с диаграммой приведены здесь:

решить 500 внутренний сервер с IIS.


Server Error 500-Внутренняя ошибка сервера. Есть проблема с ресурса, который вы ищете, и он не может быть отображен. Goddady. Хостинг - Web-Экономика-Windows Plesk

в моем случае я заменяю этот код:

<configuration> 
  <system.webServer> 
    <httpErrors errorMode="Detailed" /> 
    <asp scriptErrorSentToBrowser="true"/> 
  </system.webServer> 
  <system.web> 
    <customErrors mode="Off"/>
    <compilation debug="true" targetFramework="4.0"/>
  </system.web> 
</configuration>

затем измените framework 3.5 на framework 4. Он показывает мою подробную ошибку. Я удаляю код в:

<httpModules></httpModules>

это решило мою проблему.


500 Внутренняя Ошибка
Windows Хостинг Ошибка

Вопрос хостинга GoDaddy

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

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

<?xml version="1.0"?>

<configuration>
    <system.web>
        <trust level="Medium"/>
        <compilation debug="true" targetFramework="4.5">
            <assemblies>
                <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            </assemblies>
        </compilation>

        <httpRuntime targetFramework="4.5" />
        <sessionState mode="InProc" cookieless="false" timeout="90" />
        <authentication mode="Forms">
            <forms loginUrl="default.aspx"  
                   defaultUrl="default.aspx"
                   protection="All"
                   cookieless="UseCookies"
                   slidingExpiration="false"
                   timeout="30"
                   name="aeon.corpusjuris.in" />
        </authentication>

        <customErrors 
            mode="Off" 
            defaultRedirect="errorpage.aspx">

            <error statusCode="403" redirect="errorpage.aspx"/>
            <error statusCode="404" redirect="errorpage.aspx"/>
        </customErrors>

        <!--  <httpModules>
                <add name="HTTPCaching" type="HTTPCaching"/>
            </httpModules>
        -->
    </system.web>

    <runtime>
        <performanceScenario value="HighDensityWebHosting"  />
    </runtime>

    <system.webServer>
        <!--  <modules runAllManagedModulesForAllRequests="true">
                <add name="HTTPCaching" type="HTTPCaching"/>
            </modules>
        -->

        <defaultDocument>
            <files>
                <clear />
                <add value="default.aspx" />
            </files>
        </defaultDocument>

        <httpErrors errorMode="Detailed" />
        <asp scriptErrorSentToBrowser="true"/>

        <staticContent>
            <clientCache cacheControlCustom="public"
                         cacheControlMaxAge="60:00:00"
                         cacheControlMode="UseMaxAge" />
        </staticContent>
    </system.webServer>

    <system.web.extensions>
         <scripting>
             <webServices>
                 <jsonSerialization maxJsonLength="90000000">
                 </jsonSerialization>
             </webServices>
         </scripting>
    </system.web.extensions>

</configuration>

убедитесь, что ваша учетная запись использует IIS 7. Дополнительные сведения см. В разделе Настройка параметров IIS в учетной записи хостинга Windows. Следуйте инструкциям в разделе изменение режима конвейера учетной записи хостинга Windows IIS 7. Выберите Режим Интегрированного Конвейера. В разделе Ссылки на проект задайте для параметра копировать локально значение True для следующих сборок:

System.Web.Abstractions
System.Web.Helpers
System.Web.Routing
System.Web.Mvc
System.Web.WebPages

добавьте в проект следующие сборки и задайте для параметра копировать локально значение True:

Microsoft.Web.Infrastructure
System.Web.Razor
System.Web.WebPages.Deployment
System.Web.WebPages.Razor
Publish your application.

Иногда причиной может быть одна из ваших .сборки dll неправильно зарегистрированы на сервере.

например, вы можете успешно запустить веб-приложение c# Excel на локальном компьютере с установленным Office, получая 500 ошибок при развертывании сервера, потому что на сервере не установлен пакет Office, и, таким образом, вы получаете ошибку сервера.


для тех, у кого есть такая возможность (VPS хостинг не веб-хостинг):

подключение к хост-серверу через удаленный рабочий стол. Откройте веб-браузер с удаленного рабочего стола, и вы увидите подробное описание ошибки.

вам не нужно изменять web.config или предоставить какие-либо детали кому-либо еще.


если вы используете пользовательский HttpHandler (т. е. реализуете IHttpModule), убедитесь, что вы проверяете звонки на его Error метод.

вы могли бы ваш обработчик бросить фактический HttpExceptions (которые оказывают полезное Message свойство) во время локальной отладки, как это:

    public void Error(object sender, EventArgs e)
    {
        if (!HttpContext.Current.Request.IsLocal)
            return;
        var ex = ((HttpApplication)sender).Server.GetLastError();
        if (ex.GetType() == typeof(HttpException))
            throw ex;
    }

также не забудьте проверить исключение InnerException.


Если вы используете IIS 8.5, возможно, вам нужно изменить параметр id ApplicationPool с ApplicationPoolId to NetworkService

щелкните правой кнопкой мыши пул приложений, нажмите "Дополнительные Настройки", а затем прокрутите вниз до ID - он, вероятно, будет установлен в ApplicationPoolIdentity. Нажмите кнопку (..) и выберите NetworkService из выпадающего списка вместо.

также убедитесь, что если это приложение .NET 2.0, вы не ссылаетесь на платформу 4.0 в пуле приложений.


для IIS 8

<system.web>
   <customErrors mode="Off" />
</system.web>
<system.webServer>
   <httpErrors existingResponse="PassThrough" errorMode="Detailed">
</system.webServer>

отключить пользовательские ошибки IIS8 от Raul


перед web.config файл, я бы проверил, что .NET Framework версия, которую вы используете-это точно (я имею в виду, 4.5 != 4.5.2) по сравнению с вашей!--2-- > настройки (ASP.Net настройки в вашем Plesk panel). Это должно автоматически изменить вашу сеть.файл config в правильные рамки.

Также обратите внимание, что сейчас (16 января), GoDaddy работает с ASP.Net 3.5 и 4.5.2. Использовать 4.5.2 С Visual Studio это должно быть 2012 или новее, и если не 2015, то вы должны загрузите и установите пакет разработчика .NET Framework 4.5.2.

Если все еще не работает, то да, следующим шагом должно быть включение подробного отчета об ошибках, чтобы вы могли его отладить.