Подтвердить что ты не робот

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

Я установил сайт на своем локальном компьютере с помощью IIS 7. Но когда я развернул его на реальном сервере, я получил следующую ошибку:

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

Используя тот же IIS 7 в режиме реального времени, а также установите Detailed errors в модуле "Страницы ошибок", но все равно получите то же самое. Что может быть причиной?

Спасибо

4b9b3361

Ответ 1

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

Эта ошибка возвращалась только на статические файлы - например, изображения, css, js файлы все говорили эту ошибку (текст сам по себе, никакой другой html или текст в ответе).

Способ отладки заключается в том, чтобы посмотреть в веб-конфигурации под статическим контентом. Здесь мы загружаем расширение json файла. Это было необходимо для IIS7, но убьет приложение, если оно используется в IIS8, потому что json теперь предварительно загружен на уровне сервера.

    <staticContent>
        <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
        <mimeMap fileExtension=".json" mimeType="application/json" />
    </staticContent>

Таким образом, решение состоит в том, чтобы удалить любую из этих записей mimeType по одному, чтобы подтвердить, что необходимо, и которые убивают ваше приложение!

Ответ 2

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

<configuration>
    <system.webServer>
        <httpErrors errorMode="Detailed"></httpErrors>
    </system.webServer>
</configuration>

После этого вы должны получить более подробное сообщение об ошибке с сервера.

В моем конкретном случае более подробная ошибка указывала, что мой <defaultDocument> раздел файла web.config не был разрешен на уровне папки, где я поместил свой web.config. Он сказал: "Этот раздел конфигурации не может использоваться на этом пути.Это происходит, когда раздел заблокирован на родительском уровне. Блокировка по умолчанию (overrideModeDefault =" Deny ") или явно задается тегом местоположения с overrideMode =" Запретить "или legacy allowOverride =" false "."

Ответ 3

Измените свой web.config, чтобы отобразить сведения об ошибке сервера:

<system.web>
  <customErrors mode="Off" />
</system.web>

Вам также может потребоваться удалить/закомментировать раздел httpErrors

  <system.webServer>
    <httpErrors errorMode="Custom">
      <remove statusCode="404" />
      <error statusCode="404" path="/Error/Error404" responseMode="ExecuteURL" />
      <remove statusCode="500" />
      <error statusCode="500" path="/Error/Error500" responseMode="ExecuteURL" />
      <remove statusCode="403" />
      <error statusCode="403" path="/Error/Error403" responseMode="ExecuteURL" />
    </httpErrors>
  </system.webServer>

Из моего опыта, если у вас есть ошибка сервера, это может быть вызвано несоответствием версии сборки.

Проверьте, что объявлено в файле web.config и фактическом ddl в проекте папки bin.

Ответ 4

Я исправил это. У меня был следующий раздел in web.config:

httpErrors existingResponse="PassThrough"

Когда я удаляю его, я получил реальную ошибку

Ответ 5

В моем случае установка httpErrors и т.п. в Web.config не помогла выявить проблему.

Вместо этого я сделал:

  1. Активируйте "Отслеживание невыполненных запросов" для веб-сайта с ошибкой.
  2. Настроил трассировку для ошибок HTTP 350-999 (на всякий случай), хотя я подозревал 500.
  3. Вызвали ошибочный URL снова.
  4. Просматривается в папке журнала (в моем случае "% SystemDrive%\inetpub\logs\FailedReqLogFiles").
  5. Открыл один из файлов XML в Internet Explorer.

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

\?\C:\Websites\example.com\www\web.config(592): Невозможно добавить повторяющуюся запись коллекции типа "mimeMap" с уникальным ключевым атрибутом "fileExtension", установленным в ".json".

Теперь я смог решить ее и исправить ошибку. После этого я снова деактивировал "Отслеживание невыполненных запросов".

Ответ 6

На этой странице я запустил веб-приложения в Azure.

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

Мы столкнулись с этой проблемой, потому что мы инициализируем приложение в файле web.config.

<applicationInitialization
    doAppInitAfterRestart="true"
    skipManagedModules="true">
    <add initializationPage="/default.aspx" hostName="myhost"/>
</applicationInitialization>

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

Ответ 7

Для тех из вас, кто ударил эту запись в стеке потока, потому что она занимает высокое место для фразы:

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

В моей личной ситуации с этим точным сообщением об ошибке я включил python 2.7, думая, что мог бы использовать некоторый python с моим.NET API. Затем я получил именно это сообщение об ошибке, когда попытался развернуть ванильную версию API или MVC из Visual Studio Pro 2013. Я развертывался в веб-приложении Azure Cloud.

Надеюсь, это поможет любому с моим опытом. Я даже не думал выключать питона, пока не нашел это предложение.

Ответ 8

Кажется, он работает после того, как я прокомментировал эту строку в web.config

<compilation debug="true" targetFramework="4.5.2" />