Сообщение об ошибке 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)
- Нажмите кнопку Пуск, выберите пункт Выполнить, введите regedit и нажмите кнопку ОК.
- В редакторе реестра найдите и щелкните следующий раздел реестра:
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\MSV1_0
- Щелкните правой кнопкой мыши MSV1_0, выберите пункт "Создать", а затем выберите "Многостроковое значение".
- Введите BackConnectionHostNames и нажмите клавишу ВВОД.
- Щелкните правой кнопкой мыши BackConnectionHostNames и выберите команду "Изменить".
- В поле Значение введите имя хоста или имена хостов для сайтов, которые находятся на локальном компьютере, и нажмите кнопку ОК.
- Закройте редактор реестра и перезапустите службу 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 и отключите анонимную проверку подлинности.