Azure网站 - Web.config转换失败 "源文档中没有元素与/configuration/system.identityModel/identityConfiguration匹配"

13

我们的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部署,它可以正常工作。

5个回答

27

检查您的发布设置,看是否启用了EnableADPublish。那就是我的问题(我正在通过其他方式配置Azure AD Auth),所以我只是将它设置为false,一切都很好地解决了。

<EnableADPublish>false</EnableADPublish>

祝好, Jeff


这对我也起作用了,但我们知道为什么吗? - Nick Cipollina
一样。不知道EnableADPublish是什么,但对我也起作用了。 - willem

3
如果您正在使用发布向导,请确保“启用组织验证”未选中**。这对我非常有用。 enter image description here

2
我已经明确添加了以下配置:

我已经明确添加了以下配置:

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

最终可以创建包!


0

您的配置中缺少系统身份模型元素,无法进行 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>

0

我知道这个问题很老了,但是我最近遇到了同样的问题,唯一解决方法就是重新从Azure Web App概述面板的“获取发布配置文件”按钮下载发布配置文件,然后将其导入到解决方案中。

希望能对某些人有所帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接