Веб-сайт Azure - преобразование Web.config завершается неудачно "Ни один элемент в исходном документе не соответствует /configuration/system.identityModel/identityConfiguration"

Наш проект ASP.NET Web Api имеет две конфигурации развертывания (.pubxml):

  1. Веб-развертывание непосредственно на веб-сайтах Azure.
  2. Развертывание пакета в локальном 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 прошло эти ошибки? Это работает очень хорошо, если я делаю прямое веб-развертывание.

5 ответов

Проверьте настройки публикации, чтобы увидеть, если для EnableADPublish установлено значение true. Это была моя проблема (я настраивал Azure AD Auth с помощью других средств), поэтому я просто установил для него значение false, и все работало отлично.

<EnableADPublish>false</EnableADPublish>

Ура, Джефф

Если вы используете мастер публикации, убедитесь, что флажок "Включить организационную аутентификацию" не установлен **. Это исправило это для меня.

введите описание изображения здесь

Я добавил ниже конфигурацию явно:

<system.identityModel>
    <identityConfiguration>
      <audienceUris>        
      </audienceUris>
    </identityConfiguration>
</system.identityModel>

Наконец-то можно создать пакет!

Я знаю, что это довольно старая проблема, но у меня была эта проблема, и единственное, что решило ее для меня, - это повторно загрузить профиль публикации с помощью кнопки "Получить профиль публикации" в колонке "Обзор веб-приложения Azure". Затем мне пришлось импортировать его в решение.

Надеюсь, что это помогает кому-то!

В вашей конфигурации отсутствуют элементы 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>
Другие вопросы по тегам