asp.net - transforms - web config transform visual studio 2017
Sitio web de Azure: la transformación Web.config falla "Ningún elemento en el documento fuente coincide con/configuration/system.identityModel/identityConfiguration" (5)
Nuestro proyecto ASP.NET Web Api tiene dos configuraciones de implementación (.pubxml):
- Implementación web directamente en los sitios web de Azure.
- Despliegue del paquete en un archivo Zip local.
La implementación web (1) funciona bien. El despliegue del paquete en un zip está fallando con los siguientes errores:
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
Al mirar los registros detallados, puedo ver que está fallando durante la transformación 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.
¿Qué información de compilación adicional debo configurar para que la implementación de Zip supere estos errores? Funciona bien si realizo una implementación web directa.
Agregué la siguiente configuración explícitamente:
<system.identityModel>
<identityConfiguration>
<audienceUris>
</audienceUris>
</identityConfiguration>
</system.identityModel>
¡Es capaz de crear el paquete finalmente!
Sé que esto es bastante antiguo, pero tenía este problema y lo único que lo resolvió fue volver a descargar el perfil de publicación desde el botón "Obtener perfil de publicación" de la hoja de Azure Web App Overview. Luego tuve que importarlo a la solución.
Espero que ayude a alguien!
Te faltan los elementos system.identityModel en tu configuración para la integración de AD. Si desea integrarse con Azure AD, debe habilitar las opciones de Windows Identity Foundation (WIF) en su configuración.
<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>
Verifique su configuración de publicación para ver si tiene habilitado EnablePublish en verdadero. Ese era mi problema (estaba configurando Azure AD Auth por otros medios), así que lo configuré en falso y todo funcionó muy bien.
<EnableADPublish>false</EnableADPublish>
Saludos, Jeff