DotNetNuke: “Updating config Files: 07.02.00 Error!” when trying to upgrade DNN from 7.1.2 to 7.2.0

When I tried to upgrade my DNN environment from version 7.1.2 to version 7.2.0, the “Upgrade Status Report” always output the following error in step 5:

Updating config Files: 07.02.00 Error!

The error was also logged in the installer’s log file:

01/13/2014 13:48:25 [INFO] DotNetNuke.Services.Upgrade.Upgrade Start UpdateConfig:7.2.0
01/13/2014 13:48:25 [ERROR] DotNetNuke.Services.Upgrade.Upgrade Error: The node to be removed is not a child of this node.   at System.Xml.XmlNode.RemoveChild(XmlNode oldChild)
   at DotNetNuke.Services.Installer.XmlMerge.UpdateNode(XmlNode rootNode, XmlNode actionNode)
   at DotNetNuke.Services.Installer.XmlMerge.ProcessNode(XmlNode node, XmlNode targetRoot)
   at DotNetNuke.Services.Installer.XmlMerge.ProcessNodes(XmlNodeList nodes, Boolean saveConfig)
   at DotNetNuke.Services.Installer.XmlMerge.UpdateConfigs()
   at DotNetNuke.Services.Upgrade.Upgrade.UpdateConfig(String providerPath, String configFile, Version version, String reason)
 
01/13/2014 13:48:25 [ERROR] DotNetNuke.Services.Upgrade.Upgrade Error: The node to be removed is not a child of this node.   at System.Xml.XmlNode.RemoveChild(XmlNode oldChild)
   at DotNetNuke.Services.Installer.XmlMerge.UpdateNode(XmlNode rootNode, XmlNode actionNode)
   at DotNetNuke.Services.Installer.XmlMerge.ProcessNode(XmlNode node, XmlNode targetRoot)
   at DotNetNuke.Services.Installer.XmlMerge.ProcessNodes(XmlNodeList nodes, Boolean saveConfig)
   at DotNetNuke.Services.Installer.XmlMerge.UpdateConfigs()
   at DotNetNuke.Services.Upgrade.Upgrade.UpdateConfig(String providerPath, String configFile, Version version, String reason)

After some try and error and digging into the DNN upgrade package I found the file Install\Config\07.02.00.config with the following content:

<configuration>
  <nodes configfile="Web.config">
    <!-- add assembly redirect for WebFormsMVP-->
    <node path="/configuration/runtime/ab:assemblyBinding" action="update"
          targetpath="/configuration/runtime/ab:assemblyBinding/ab:dependentAssembly[ab:assemblyIdentity/@name='WebFormsMvp']"
          collision="overwrite" nameSpace="urn:schemas-microsoft-com:asm.v1" nameSpacePrefix="ab">
      <dependentAssembly xmlns="urn:schemas-microsoft-com:asm.v1">
        <assemblyIdentity name="WebFormsMvp" publicKeyToken="537f18701145dff0" />
        <bindingRedirect oldVersion="0.0.0.0-1.4.999.999" newVersion="1.4.1.0" />
      </dependentAssembly>
    </node>
  </nodes>
</configuration>

As far as I understand the DNN upgrade process this file tries to update an assembly binding and this caused the error, because my Web.Config file contained two different <assemblyBinding> nodes which is syntactically correct but seems to break the upgrade process. In detail the <assemblyBinding> sections looks as follows:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    [...]
  </dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <probing privatePath="bin;bin\HttpModules;bin\Providers;bin\Modules;bin\Support;" />
  <dependentAssembly xmlns="urn:schemas-microsoft-com:asm.v1">
    <assemblyIdentity name="WebFormsMvp" publicKeyToken="537f18701145dff0" />
    <bindingRedirect oldVersion="1.0.0.0" newVersion="1.2.0.0" />
  </dependentAssembly>
</assemblyBinding>

After merging both <assemblyBinding> nodes into one I was able to upgrade my DotNetNuke environment from version 7.1.2 to 7.2.0.

Leave a comment

Your email address will not be published. Required fields are marked *

*