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

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

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

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

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

После игры с web.config я получил:

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

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

Ответ 1

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

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

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

В 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 в справочных статьях Go Daddy.

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

Ответ 2

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

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

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

Ответ 3

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

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

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

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

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

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

Ответ 4

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

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

Ответ 5

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

Ответ 6

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

Проблема: у меня был сайт, установленный на .NET 3.5 в Visual Studio (правый проект веб-сайта → Страницы свойств → Build), но имел веб-сайт в Azure, настроенный как .NET 4.0. К сожалению! Я изменил его на 3.5 в Azure, и он сработал.

Ответ 7

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

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

Ответ 8

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

Ответ 9

Ошибка сервера 500 - Внутренняя ошибка сервера. Существует проблема с ресурсом, который вы ищете, и его невозможно отобразить. Goddady. Хостинг - Интернет - Экономика - 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>

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

<httpModules></httpModules>

Он решил мою проблему.

Ответ 10

Вероятно, ваш файл web.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>

Ответ 11

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

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

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

Ответ 12

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

Godaddy Hosting проблема

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

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

<?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>

Ответ 13

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

Ответ 14

Если вы используете пользовательский 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.

Ответ 15

Для IIS 8 Существует еще один дополнительный шаг, кроме изменения customErrors = Off для отображения содержания ошибки.

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

Рауль ответил на вопрос по этой ссылке Отключить пользовательские ошибки IIS8 от Рауля

Ответ 16

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

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

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

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

Ответ 17

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

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

Ответ 18

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

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

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

Ответ 19

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

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

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

Ответ 20

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

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

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

Ответ 21

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

Ответ 22

Другой причиной может быть перезапись URL-адреса. Просто удалите/прокомментируйте раздел "rewrite" в файле web.config.