Развертывание веб-сайта: 500 - Внутренняя ошибка сервера - PullRequest
174 голосов
/ 22 марта 2011

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

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

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

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

После возни с web.config я получил:

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

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

Ответы [ 20 ]

276 голосов
/ 22 марта 2011

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

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

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

Вкл. 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 в Перейти к статьям справки Daddy's .

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

23 голосов
/ 02 февраля 2012

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

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

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

9 голосов
/ 15 мая 2014

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

  <staticContent>
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
  </staticContent>
9 голосов
/ 23 марта 2013

Я наконец-то решил эту ошибку «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.

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

7 голосов
/ 31 декабря 2012

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

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

7 голосов
/ 06 апреля 2012

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

4 голосов
/ 13 августа 2014

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

<httpErrors existingResponse="Replace" />
                              ^^^^^^^ not going to work with this here
3 голосов
/ 03 июля 2014

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

2 голосов
/ 24 сентября 2014

Ошибка сервера 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>

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

<httpModules></httpModules>

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

2 голосов
/ 30 сентября 2015

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...