Azure Website - преобразование Web.config не выполняется "Ни один элемент в исходном документе не соответствует /configuration/system.identityModel/identityConfiguration"
Наш проект ASP.NET Web Api имеет две конфигурации развертывания (.pubxml):
- Развертывание веб-сайтов непосредственно на веб-сайтах Azure.
- Развертывание пакета в локальном Zip файле.
Развертывание в Интернете (1) работает отлично.
Развертывание пакета в zip происходит со следующими ошибками:
Warning 3 No element in the source document matches '/configuration/system.identityModel' 20 10 MyWebProject
Error 4 No element in the source document matches '/configuration/system.identityModel/identityConfiguration' 21 10 MyWebProject
Глядя на подробные журналы, я вижу, что он не работает во время преобразования Web.config.
ParameterizeTransformXml: No element in the source document matches '/configuration/appSettings/add[@key='ida:AudienceUri']'
ParameterizeTransformXml: Not executing SetTokenizedAttributes (transform line 7, 9)
ParameterizeTransformXml: No element in the source document matches '/configuration/appSettings/add[@key='ida:Realm']'
ParameterizeTransformXml: Not executing SetTokenizedAttributes (transform line 10, 9)
ParameterizeTransformXml: No element in the source document matches '/configuration/appSettings/add[@key='ida:FederationMetadataLocation']'
ParameterizeTransformXml: Not executing SetTokenizedAttributes (transform line 13, 9)
Warning : No element in the source document matches '/configuration/system.identityModel'
ParameterizeTransformXml: Not executing RemoveAll (transform line 24, 14)
Error : No element in the source document matches '/configuration/system.identityModel/identityConfiguration'
ParameterizeTransformXml: Not executing Insert (transform line 27, 9)
ParameterizeTransformXml: No element in the source document matches '/configuration/system.identityModel'
ParameterizeTransformXml: Not executing SetTokenizedAttributes (transform line 33, 9)
ParameterizeTransformXml: No element in the source document matches '/configuration/system.identityModel.services'
ParameterizeTransformXml: Not executing SetTokenizedAttributes (transform line 42, 9)
ParameterizeTransformXml: No element in the source document matches '/configuration/system.identityModel.services'
ParameterizeTransformXml: Not executing SetTokenizedAttributes (transform line 45, 9)
ParameterizeTransformXml: Transformation failed
Done executing task "ParameterizeTransformXml" -- FAILED.
Done building target "_TransformWebConfigForAzureAuthenticationCore" in project "MyWebProject.csproj" -- FAILED.
Done building project "MyWebProject.csproj" -- FAILED.
Какую дополнительную информацию о сборке нужно настроить для того, чтобы получить распространение Zip за этими ошибками?. Это работает отлично, если я делаю прямое веб-развертывание.
Ответы
Ответ 1
Проверьте настройки публикации, чтобы убедиться, что для параметра EnableAdPublish установлено значение true. Это была моя проблема (я настраивал Azure AD Auth другими способами), поэтому я просто установил ее в false и все отлично работало.
<EnableADPublish>false</EnableADPublish>
Cheers,
Джефф
Ответ 2
Если вы используете мастер публикации, убедитесь, что флажок "Включить организационную проверку подлинности" не установлен **. Это исправило это для меня.
![введите описание изображения здесь]()
Ответ 3
Я добавил указанную ниже конфигурацию явно:
<system.identityModel>
<identityConfiguration>
<audienceUris>
</audienceUris>
</identityConfiguration>
</system.identityModel>
Он может наконец создать пакет!
Ответ 4
Вам не хватает элементов system.identityModel в вашей конфигурации для интеграции AD. Если вы хотите интегрироваться с azure AD, вам нужно включить параметры конфигурации Windows Identity Foundation (WIF) в вашей конфигурации.
<configuration>
<configSections>
<!--WIF 4.5 sections -->
<section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<section name="system.identityModel.services" type="System.IdentityModel.Services.Configuration.SystemIdentityModelServicesSection, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</configSections>
...
<system.identityModel>
<identityConfiguration>
<audienceUris>
<add value="http://localhost/WebApplication1/" />
</audienceUris>
<issuerNameRegistry type="System.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089">
<trustedIssuers>
<add thumbprint="313D3B … 9106A9EC" name="SelfSTS" />
</trustedIssuers>
</issuerNameRegistry>
<certificateValidation certificateValidationMode="None"/>
</identityConfiguration>
</system.identityModel>
...
</configuration>
Ответ 5
Я знаю, что это довольно старо, но у меня была эта проблема, и единственная, что разрешило это для меня, - это перезагрузить профиль публикации из блейд-сервера Azure Web App "Получить публикацию профиля". Затем мне пришлось импортировать его в решение.
Надеюсь, что это поможет кому-то!