【问题标题】:Azure Website - Web.config transform fails "No element in the source document matches /configuration/system.identityModel/identityConfiguration"Azure 网站 - Web.config 转换失败“源文档中没有元素匹配 /configuration/system.identityModel/identityConfiguration”
【发布时间】:2015-04-09 13:40:54
【问题描述】:

我们的 ASP.NET Web Api 项目有两个部署配置(.pubxml):

  1. Web 直接部署到 Azure 网站。
  2. 将包部署到本地 Zip 文件。

Web 部署 (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 部署克服这些错误?如果我进行直接 Web 部署,它就可以正常工作。

【问题讨论】:

    标签: asp.net azure web.config-transform


    【解决方案1】:

    检查您的发布设置,看看您是否将 EnableADPublish 设置为 true。那是我的问题(我正在通过其他方式配置 Azure AD Auth),所以我将其设置为 false 并且一切正常。

    <EnableADPublish>false</EnableADPublish>
    

    干杯, 杰夫

    【讨论】:

    • 这对我也有用,但我们知道为什么吗?
    • 相同。不知道 EnableADPublish 是什么,但也对我有用。
    【解决方案2】:

    如果您使用的是发布向导,请确保未选中“启用组织身份验证”**。这为我解决了问题。

    【讨论】:

      【解决方案3】:

      我明确添加了以下配置:

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

      终于可以创建包了!

      【讨论】:

        【解决方案4】:

        您的 AD 集成配置中缺少 system.identityModel 元素。如果要与 azure AD 集成,则需要在配置中 enable Windows Identity Foundation (WIF) options

        <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 应用程序概览刀片的“获取发布配置文件”按钮重新下载发布配置文件。然后我不得不将它导入到解决方案中。

          希望对某人有所帮助!

          【讨论】:

            猜你喜欢
            • 2017-03-13
            • 1970-01-01
            • 2012-11-17
            • 1970-01-01
            • 1970-01-01
            • 2023-04-09
            • 1970-01-01
            • 2011-07-07
            • 1970-01-01
            相关资源
            最近更新 更多