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

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

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

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

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

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

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

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

Ответы [ 20 ]

2 голосов
/ 11 марта 2015

Возможно, ваш файл 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>
1 голос
/ 09 мая 2017

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

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

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

1 голос
/ 19 ноября 2013

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>
1 голос
/ 06 сентября 2014

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

0 голосов
/ 01 февраля 2017

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

Щелкните правой кнопкой мыши пул приложений, о котором идет речь, нажмите «Расширенные настройки», а затем прокрутите вниз до ID - вероятно, он будет установлен на ApplicationPoolIdentity . Нажмите кнопку (..) и выберите NetworkService вместо раскрывающегося списка.

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

0 голосов
/ 09 ноября 2016

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

Исключения.
0 голосов
/ 28 октября 2016

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

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

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

0 голосов
/ 20 января 2016

Перед изменением файла web.config я бы проверил, что используемая вами версия .NET Framework точно (я имею в виду, 4.5! = 4.5.2) такая же, как ваши настройки GoDaddy (ASP.Сетевые настройки в вашем 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.

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

0 голосов
/ 16 марта 2015

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

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

0 голосов
/ 25 октября 2014

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

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

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

Microsoft.Web.Infrastructure
System.Web.Razor
System.Web.WebPages.Deployment
System.Web.WebPages.Razor
Publish your application.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...