Сообщение об ошибке 401.2.: Неавторизованный. Ошибка входа в систему из-за конфигурации сервера. Когда приложение развернуто

У меня есть приложение asp.net 4.0, которое отлично работает под управлением cassini, но когда я развертываю в IIS, я получаю вышеуказанную ошибку. Он работает под пулом приложений по умолчанию, который использует и работает в целом ряде других приложений. Вот копия моей веб-конфигурации, которая может быть источником:

<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>
  <connectionStrings>
    <add name="FMLconnect" connectionString="Server=192.168.20.125;Port=;Database=FML;Uid=******;Pwd=*****;pooling=false;" providerName="MySql.Data.MySqlClient"  />
  </connectionStrings>

  <system.web>
    <httpHandlers>
      <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
      <add path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler" verb="*" validate="false"/>
      <add path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" validate="false"/>
      <add path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" validate="false"/>
      <add path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" validate="false"/>
      <add path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" validate="false"/>
      <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
      <add type="Telerik.ReportViewer.WebForms.HttpHandler, Telerik.ReportViewer.WebForms, Version=5.1.11.928, Culture=neutral, PublicKeyToken=a9d7983dfcc261be" path="Telerik.ReportViewer.axd" verb="*" validate="true"/>
    </httpHandlers>
    <compilation debug="true" targetFramework="4.0" >
      <assemblies>
        <add assembly="Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <!--<add assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>-->
        <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      </assemblies>
    </compilation>




  </system.web>

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

Ответы

Ответ 1

В IIS это действительно звучит так, как будто вам нужно проверить настройки аутентификации для вашего приложения в IIS Admin. Попробуйте эту ссылку: http://support.microsoft.com/kb/253667

Это для IIS6, вы не указали, используете ли вы IIS 6 или 7. Для IIS 7 попробуйте следующее: http://support.microsoft.com/kb/942043

Ответ 2

Я обновил проект VS2012 до 2013 года, и он изменил свойство Project из Windows Authentication от Enabled до Disabled, и я тогда получил эту ошибку. Простое изменение решило проблему. Перейдите к решению и нажмите свойства, чтобы изменить это.

Если вы используете IISExpress, строки должны выглядеть примерно так:

<IISExpressAnonymousAuthentication>disabled</IISExpressAnonymousAuthentication>
<IISExpressWindowsAuthentication>enabled</IISExpressWindowsAuthentication>

Ответ 3

Если вы работаете с IIS Express, проверьте web.config

        <!--  AUTHENTICATION 
      This section sets the authentication policies of the application. Possible modes are "Windows", 
      "Forms", "Passport" and "None"
-->
    <authentication mode="Windows"/>
    <identity impersonate="true"/>
    <!--  AUTHORIZATION 
      This section sets the authorization policies of the application. You can allow or deny access
      to application resources by user or role. Wildcards: "*" mean everyone, "?" means anonymous 
      (unauthenticated) users.
-->
    <!--<authorization>
        <deny users="?"/>-->
        <!-- Allow all users -->
        <!--  <allow     users="[comma separated list of users]"
                         roles="[comma separated list of roles]"/>
              <deny      users="[comma separated list of users]"
                         roles="[comma separated list of roles]"/>
        -->
    <!--</authorization>-->

Ответ 4

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

Для меня проблема была решена следующим образом:

  • Откройте диспетчер IIS
  • Выберите "Пулы приложений"
  • Щелкните правой кнопкой мыши на пуле приложений, который вы используете, и выберите "Дополнительные настройки"
  • Установите "Включить 32-разрядные приложения" на "True"
  • Нажмите "ОК", чтобы закрыть диалоговое окно
  • Щелкните правой кнопкой мыши пул приложений и выберите "Переработать"

Надеюсь, что это поможет кому-то еще! Это сводило меня с ума.

Ответ 5

Попробуйте следующее:

  • Откройте диспетчер IIS
  • Нажмите на свой веб-сервер (т.е. сам сервер, а не сайт) на панели соединений.
  • Выберите "Аутентификация" в разделе IIS.
  • Включить протоколы по мере необходимости. Все, что отключено здесь, не будет доступно для сайтов, размещенных на этом сервере; все, что включено здесь, будет использовать отдельные настройки сайта.
  • Перезапустите IIS (start, run, cmd (запустите как admin), iisreset -noforce)

Ответ 6

Это может быть очень поздний ответ, но проблема в моем случае была неправильно настроенным профилем публикации (с использованием Web Deploy). Как только я отменил выбор Precompile during publishing (ниже) и переиздан, он вернулся к нормальному состоянию, и я смог получить к нему доступ.

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

enter image description here

И, честно говоря, у меня до сих пор нет объяснений о том, какое влияние имеет этот вариант на то, и почему он является причиной такой проблемы. Я нашел этот question, но я все еще расследую.

Ответ 7

Мне пришлось изменить настройки из панели "Свойства", чтобы решить эту проблему. Выберите проект и нажмите F4 (меню: View-> Окно свойств) и установите свойства соответственно.

Visual Studio 2015 - снимок экрана панели свойств

Надеюсь это поможет!

Ответ 8

У меня была похожая проблема, и я решил ее, установив optimizeCollections в false в web.config и немедленно отменив изменение после проверки его работоспособности.

  <system.web>
    ..
    <compilation debug="true" targetFramework="4.7.1" optimizeCompilations="false" />
    ..
  </system.web>

Возможно, того же можно добиться, удалив временную папку asp.net.

Ответ 9

Я также получал эту ошибку, пытаясь запустить существующее приложение ASP.NET WebForms в IIS Express (но это, вероятно, также относится к IIS > ).

Приложение было настроено в applicationhost.config, чтобы использовать пул приложений Clr4IntegratedAppPool. Изменение атрибута applicationPool на Clr4ClassicAppPool решило проблему для меня.

Ответ 10

Я исправил ошибки аутентификации 401.1 и 401.2, добавив BackConnectionHostNames в реестр, используя следующие инструкции: https://support.microsoft.com/en-us/help/896861/you-receive-error-401-1-when-you-browse -a-веб-сайт-который-использует-интегрировать (метод 1)

  1. Нажмите кнопку Пуск, выберите пункт Выполнить, введите regedit и нажмите кнопку ОК.
  2. В редакторе реестра найдите и щелкните следующий раздел реестра:
  3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\MSV1_0
  4. Щелкните правой кнопкой мыши MSV1_0, выберите пункт "Создать", а затем выберите "Многостроковое значение".
  5. Введите BackConnectionHostNames и нажмите клавишу ВВОД.
  6. Щелкните правой кнопкой мыши BackConnectionHostNames и выберите команду "Изменить".
  7. В поле Значение введите имя хоста или имена хостов для сайтов, которые находятся на локальном компьютере, и нажмите кнопку ОК.
  8. Закройте редактор реестра и перезапустите службу IISAdmin.

Эти ошибки возникали при установке Windows 10 Professional под управлением версии 1803 в домене, имя которого отличается от имени сайта, на котором я пытался пройти аутентификацию.

Ответ 11

что мне помогло, так это прокомментировать строки ниже в web.config

<system.web>
    <compilation debug="true" targetFramework="4.5.2" />
    <httpRuntime targetFramework="4.5" />
    <!--  
    <authentication mode="Windows" /> 
    <authorization>
        <deny users="?" />
    </authorization>
    <identity impersonate="false" />
    -->
    <customErrors mode="Off" />
</system.web>

Ответ 12

Если это приложение на основе проверки подлинности Windows, включите проверку подлинности Windows для своего сайта в IIS и отключите анонимную проверку подлинности.