Решение работает только для IIS> = 7,5
Не похоже, что IIS позволяет вам управлять этим параметром через web.config веб-приложения. Одним из способов решения этой проблемы является создание выделенного пула приложений (или нескольких) и настройка CLR пула приложений с отключенным принудительным применением FIPS. В IIS 7.5 введено свойство CLRConfigFile , которое можно использовать для указания файла конфигурации .NET пула приложений. Это дает нам более детальный контроль над тем, какие приложения влияют на конфигурацию - вместо подхода дробовика, где мы отключаем его в machine.config или в параметре групповой политики.
1.Создать файл конфигурации, c:\inetpub\AppPoolClrConfig\noFipsWeb.config
, со следующим содержимым (местоположение и имя файла не имеют значения):
<configuration>
<runtime>
<enforceFIPSPolicy enabled = "false" />
</runtime>
</configuration>
2. Предоставьте разрешения на чтение файла идентификатору, под которым запускается пул приложений:
icacls c:\inetpub\AppPoolClrConfig\noFipsWeb.config /grant "IIS APPPOOL\YourAppPoolName":(R)
3.Настройте пул приложений для загрузки этого файла конфигурации, задав свойство CLRConfigFile
пула:
CMD:
%windir%\System32\inetsrv\appcmd.exe set config -section:system.applicationHost/applicationPools/[name='{AppPoolName}'].CLRConfigFile:"{FilePath}" /commit:apphost
* * Образец тысяча двадцать-один:
%windir%\System32\inetsrv\appcmd.exe set config -section:system.applicationHost/applicationPools /[name='YourAppPoolName'].CLRConfigFile:"c:\inetpub\AppPoolClrConfig\noFipsWeb.config" /commit:apphost
Из-за ошибки в IIS 7.5 нам также необходимо очистить свойство managedRuntimeLoader
, иначе CLRConfigFile
будет игнорироваться:
%windir%\System32\inetsrv\appcmd.exe set config -section:system.applicationHost/applicationPools /[name='YourAppPoolName'].managedRuntimeLoader:"" /commit:apphost
4. Перезагрузите IIS. Ваши приложения Asp.NET, которые используют пул приложений выше, теперь должны игнорировать FIPS.
Кредиты для:
Скотту Форсайту за объяснение , как настроить пул приложений для использования файла CLR, отличного от стандартного файла aspnet.config .
Хосе Рейес за документирование ошибки в IIS 7.5, которая игнорировала свойство CLRConfigFile