Я пытаюсь развернуть приложение ASP.NET. Я развернул сайт в IIS, но при посещении его с помощью браузера он показывает мне следующее:
Ошибка сервера
внутренняя ошибка сервера 500.
Возникла проблема с ресурсом, который вы ищете, и он не может быть отображен.
После возни с web.config я получил:
Невозможно отобразить страницу, поскольку произошла внутренняя ошибка сервера.
Как я могу увидеть фактическую проблему за этой ошибкой сервера?
asp.net
iis
error-handling
Джейкоб Джедришек
источник
источник
Ответы:
Во-первых, вам нужно включить и просмотреть подробные ошибки ваших веб-сообщений, потому что это общее сообщение без предоставления информации о том, что на самом деле происходит из соображений безопасности.
С подробной ошибкой вы можете найти реальную проблему здесь.
Кроме того, если вы можете запустить браузер на сервере , вы получите подробную информацию об ошибке, поскольку сервер распознает, что вы локальный, и покажет ее вам. Или, если вы можете прочитать журнал сервера с помощью средства просмотра событий, вы также увидите подробности вашей ошибки.
На IIS 6
На IIS 7
Примечание: вы можете избежать Debug = true . Вам нужно только на некоторое время закрыть пользовательские ошибки и получить подробную страницу об ошибках.
Справка: Включение Windows , пользовательских сообщений об ошибках в Go Daddy в справочных статьях.
Также это может помочь: Как включить подробные сообщения об ошибках (из IIS).
источник
run the browser on the server
работал для меня .. спасибо братЯ вырывал свои волосы из-за этой проблемы. Убедившись, что следующая запись была в корневом
web.config
файле, исправил это для меня:Помните, что вы должны добавить это к существующим элементам XML , если они уже есть. Вы не можете просто добавить в конец файла, потому что вы не можете иметь несколько копий любого элемента.
источник
Для меня следующий код в web.config был виновником. Когда я удалил его, веб-сайт работал нормально.
источник
Я наконец-то решил эту ошибку «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.
Это сработало и наконец моя проблема была решена.
источник
В моем случае я поместил ошибку в мой
web.config
файл. Ключ приложения каким-то образом был помещен под тегом <appSettings>. Но мне интересно, почему он не отображает ошибку конфигурации. Ошибка 500 слишком общая для исследования проблемы.источник
Моя первая попытка опубликовать, а затем запустить очень простой сайт, содержащий только созданный HTML-код: «Невозможно отобразить страницу, поскольку произошла внутренняя ошибка сервера».
Проблема: у меня был установлен сайт .NET 3.5 в Visual Studio (щелкните правой кнопкой мыши проект веб-сайта -> Страницы свойств -> Построить), но веб-сайт в Azure был настроен как .NET 4.0. К сожалению! Я изменил его на 3,5 в Azure, и это сработало.
источник
В дополнение к другим предложениям, убедитесь , чтобы изменить
existingResponse
атрибутhttpErrors
узлаAuto
изReplace
, или удалить эту собственность полностью.источник
IIS также сообщает код состояния 500 без каких-либо подсказок журнала событий, если для физического домашнего каталога недостаточно разрешений (т. Е. IIS_IUSRS не имеет доступа).
источник
В моем случае я заменяю этот код:
Затем измените Framework 3.5 на Framework 4. Это показывает мою подробную ошибку. Я удаляю код в:
Это решило мою проблему.
источник
Для IIS 8 Существует дополнительный шаг, кроме изменения customErrors = Off для отображения содержимого ошибки.
Рауль ответил на вопрос по этой ссылке Отключить пользовательские ошибки IIS8 от Рауля
источник
Возможно, ваш файл web.config неправильный или отсутствует какой-либо тег. Я решил свою проблему, используя правильные теги конфигурации для .NET 4.
источник
Я понял, что разрешения для файлов и папок на вашем сервере также имеют значение. Я загрузил свои файлы из операционной системы Linux, и обычно разрешения на чтение и запись ограничены. Поэтому при загрузке разрешение остается таким же, как на локальном компьютере.
У меня была та же ошибка, и я просто изменил разрешения для папки, которую я загрузил, и ошибка исчезла.
Надеюсь, это кому-нибудь поможет.
источник
Я столкнулся с той же проблемой, но теперь моя проблема была решена. Всегда используйте на этом хостинге, это работает.
Я также рекомендую всем вам внести любые изменения, которые вы хотите внести в свой файл web.config. Пожалуйста, сделайте это один за другим и протестируйте то же самое на действующем домене, чтобы вы могли найти точную проблему или функции, которые ваш хостинг-провайдер не позволяет вам использовать.
источник
Если вы используете собственный HttpHandler (т. Е. Реализуете
IHttpModule
), убедитесь, что вы проверяете вызовы егоError
метода.Вы можете сделать так, чтобы ваш обработчик выдавал фактическое
HttpExceptions
(у которого есть полезноеMessage
свойство) во время локальной отладки вот так:Также убедитесь, что осмотр исключений
InnerException
.источник
500 внутренняя ошибка сервера может возникнуть по нескольким причинам. Первая причина может заключаться в том, что файл web.config создан неправильно, что означает, что вы пропустили какой-либо тег в файле web.config. Во-вторых, эта ошибка может быть связана с проблемой кода. Чтобы проверить, какой компонент веб-приложения вызывает эту ошибку, вы можете проверить настройки приложения в файле web.config. Подробности решения и отслеживания внутренней ошибки 500 сервера с диаграммой приведены здесь:
источник
Убедитесь, что ваша учетная запись использует IIS 7. Дополнительные сведения см. В разделе «Настройка параметров IIS в учетной записи хостинга Windows». Следуйте инструкциям в разделе Изменение режима конвейера в учетной записи хостинга Windows IIS 7. Выберите режим интегрированного конвейера. В разделе «Ссылки на проект» установите для параметра «Копировать локально» значение «Истина» для следующих сборок:
Добавьте следующие сборки в ваш проект и установите для параметра Копировать локально значение True:
источник
Иногда причина может заключаться в том, что одна из ваших сборок .dll неправильно зарегистрирована на сервере.
Например, вы можете успешно запустить веб-приложение C # Excel на локальном компьютере с установленным Office, одновременно получая ошибку 500 при развертывании сервера, поскольку на сервере не установлен пакет Office, и, таким образом, вы получаете ошибку сервера.
источник
Для тех, у кого есть такая возможность (VPS-хостинг, а не веб-хостинг):
Подключитесь к вашему хостинг-серверу через удаленный рабочий стол. Откройте веб-браузер с удаленного рабочего стола, и вы увидите подробное описание ошибки.
Вам не нужно изменять web.config или раскрывать какие-либо детали кому-либо еще.
источник
Если вы используете IIS 8.5, может потребоваться изменить настройку идентификатора ApplicationPool с ApplicationPoolId на NetworkService
Щелкните правой кнопкой мыши пул приложений, о котором идет речь, нажмите «Расширенные настройки», а затем прокрутите вниз до идентификатора - он, вероятно, будет установлен в ApplicationPoolIdentity . Нажмите кнопку (..) и выберите NetworkService из выпадающего списка.
Также убедитесь, что, если это приложение .NET 2.0, вы не ссылаетесь на структуру 4.0 в вашем пуле приложений.
источник
Прежде чем изменить
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.Если все еще не работает, тогда да, ваш следующий шаг должен включать подробные отчеты об ошибках, чтобы вы могли отладить его.
источник
Недавно я столкнулся с той же проблемой, на сервере было полно дискового пространства. Очистка некоторого пространства решила проблему.
источник
Попробуйте скомпилировать в режиме отладки (в Visual Studio). Если вы находитесь в режиме выпуска, многие ошибки перезаписи URL будут недоступны.
На рисунке показан комбинированный список выбора отладки в Visual Studio
источник