Невозможно отобразить страницу, поскольку на сервере произошла ошибка внутреннего сервера
Я установил сайт на своем локальном компьютере с помощью IIS 7.
Но когда я развернул его на реальном сервере, я получил следующую ошибку:
"Невозможно отобразить страницу, поскольку произошла ошибка внутреннего сервера" Больше ничего.
Используя тот же IIS 7 в режиме реального времени, а также установите Detailed errors
в модуле "Страницы ошибок", но все равно получите то же самое.
Что может быть причиной?
Спасибо
Ответы
Ответ 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 не помогла выявить проблему.
Вместо этого я сделал:
- Активируйте "Отслеживание невыполненных запросов" для веб-сайта с ошибкой.
- Настроил трассировку для ошибок HTTP 350-999 (на всякий случай), хотя я подозревал 500.
- Вызвали ошибочный URL снова.
- Просматривается в папке журнала (в моем случае "% SystemDrive%\inetpub\logs\FailedReqLogFiles").
- Открыл один из файлов 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" />