I have been reading through numerous posts concerning module upgrade problems, specifically version 4 modules (like Text/HTML and Reports), as they relate to the error:
Failure ExceptionSystem.NullReferenceException: Object reference not set to an instance of an object. at DotNetNuke.Common.Utilities.Config.AddCodeSubDirectory(String name) at DotNetNuke.Modules.Admin.ResourceInstaller.PaDnnInstallerBase.CreateModuleFile(PaFile File, PaFolder Folder) at DotNetNuke.Modules.Admin.ResourceInstaller.PaDnnInstallerBase.CreateFiles(PaFolder Folder) at DotNetNuke.Modules.Admin.ResourceInstaller.PaDnnInstallerBase.Install(PaFolderCollection folders) at DotNetNuke.Modules.Admin.ResourceInstaller.PaInstaller.Install()
Most responses I have found have revolved around:
- upgrading DNN
- deleting some old files in the DNN installation (for Text/HTML module)
- web.config intellisense entry that needed to be deleted (<configuration xmlns=http://schemas.microsoft.com/.NetConfiguration/v2.0>)
After looking about 20 times over my install, I gave up on those resources as my DNN version was 4.5.1, I did not have the old files and my web.config did not contain the offending entry. The notes I found on web.config did point me in the right direction to get things fixed though (that's outlined below), so I'm posting this as a notice to help others. And, if the situation described below can be fixed, I'd appreciate a developer adding it to Gemini.
Due to my distributed environment (Web Farm, separate SQL Server, DNN files on network share) I've gotten used to troubleshooting problems with tools like FileMon to make sure I don't have some permission problem. I saw from the install log that the module installation was failing right after it wrote dnn.reports.js to it's final resting place. So, I looked for that entry in FileMon:
9:30:59 AM w3wp.exe:800 QUERY INFORMATION \\hyenas\webstorage\dotnetnuke\website\DesktopModules\Reports\js\dnn.reports.js SUCCESS FileNetworkOpenInformation
9:30:59 AM w3wp.exe:800 CLOSE \\hyenas\webstorage\dotnetnuke\website\DesktopModules\Reports\js\dnn.reports.js SUCCESS
9:30:59 AM w3wp.exe:800 OPEN \\hyenas\webstorage\dotnetnuke\website\DesktopModules\Reports\js\dnn.reports.js SUCCESS Options: Open Access: 00100100
9:30:59 AM w3wp.exe:800 SET INFORMATION \\hyenas\webstorage\dotnetnuke\website\DesktopModules\Reports\js\dnn.reports.js SUCCESS FileBasicInformation
9:30:59 AM w3wp.exe:800 CLOSE \\hyenas\webstorage\dotnetnuke\website\DesktopModules\Reports\js\dnn.reports.js SUCCESS
9:30:59 AM w3wp.exe:800 CREATE \\hyenas\webstorage\dotnetnuke\website\DesktopModules\Reports\js\dnn.reports.js SUCCESS Options: OverwriteIf Access: 00120196
9:30:59 AM w3wp.exe:800 QUERY INFORMATION \\hyenas\webstorage\dotnetnuke\website\DesktopModules\Reports\js\dnn.reports.js SUCCESS FileFsDeviceInformation
9:30:59 AM w3wp.exe:800 QUERY INFORMATION \\hyenas\webstorage\dotnetnuke\website\DesktopModules\Reports\js\dnn.reports.js SUCCESS FileFsDeviceInformation
9:30:59 AM w3wp.exe:800 WRITE \\hyenas\webstorage\dotnetnuke\website\DesktopModules\Reports\js\dnn.reports.js SUCCESS Offset: 0 Length: 3025
9:30:59 AM w3wp.exe:800 CLOSE \\hyenas\webstorage\dotnetnuke\website\DesktopModules\Reports\js\dnn.reports.js SUCCESS
9:30:59 AM w3wp.exe:800 OPEN \\hyenas\webstorage\dotnetnuke\website\web.config SUCCESS Options: Open Access: Read
9:30:59 AM w3wp.exe:800 QUERY INFORMATION \\hyenas\webstorage\dotnetnuke\website\web.config SUCCESS FileFsDeviceInformation
9:30:59 AM w3wp.exe:800 QUERY INFORMATION \\hyenas\webstorage\dotnetnuke\website\web.config SUCCESS FileFsDeviceInformation
9:30:59 AM w3wp.exe:800 QUERY INFORMATION \\hyenas\webstorage\dotnetnuke\website\web.config SUCCESS FileStandardInformation
9:30:59 AM w3wp.exe:800 READ \\hyenas\webstorage\dotnetnuke\website\web.config SUCCESS Offset: 0 Length: 4096
9:30:59 AM w3wp.exe:800 READ \\hyenas\webstorage\dotnetnuke\website\web.config SUCCESS Offset: 0 Length: 4096
9:30:59 AM w3wp.exe:800 READ \\hyenas\webstorage\dotnetnuke\website\web.config SUCCESS Offset: 4096 Length: 4096
9:30:59 AM w3wp.exe:800 READ \\hyenas\webstorage\dotnetnuke\website\web.config SUCCESS Offset: 4096 Length: 4096
9:30:59 AM w3wp.exe:800 READ \\hyenas\webstorage\dotnetnuke\website\web.config SUCCESS Offset: 8192 Length: 4096
9:30:59 AM w3wp.exe:800 READ \\hyenas\webstorage\dotnetnuke\website\web.config SUCCESS Offset: 8192 Length: 4096
9:30:59 AM w3wp.exe:800 READ \\hyenas\webstorage\dotnetnuke\website\web.config SUCCESS Offset: 12288 Length: 4096
9:30:59 AM w3wp.exe:800 READ \\hyenas\webstorage\dotnetnuke\website\web.config SUCCESS Offset: 12288 Length: 4096
9:30:59 AM w3wp.exe:800 READ \\hyenas\webstorage\dotnetnuke\website\web.config SUCCESS Offset: 16384 Length: 4096
9:30:59 AM w3wp.exe:800 READ \\hyenas\webstorage\dotnetnuke\website\web.config SUCCESS Offset: 16384 Length: 4096
9:30:59 AM w3wp.exe:800 READ \\hyenas\webstorage\dotnetnuke\website\web.config SUCCESS Offset: 20480 Length: 4096
9:30:59 AM w3wp.exe:800 READ \\hyenas\webstorage\dotnetnuke\website\web.config SUCCESS Offset: 20480 Length: 4096
9:30:59 AM w3wp.exe:800 READ \\hyenas\webstorage\dotnetnuke\website\web.config END OF FILE Offset: 22028 Length: 4096
9:30:59 AM w3wp.exe:800 CLOSE \\hyenas\webstorage\dotnetnuke\website\web.config SUCCESS
9:30:59 AM w3wp.exe:800 OPEN \\hyenas\webstorage\dotnetnuke\website\bin\DotNetNuke.PDB NOT FOUND Options: Open Sequential Access: Read
9:30:59 AM w3wp.exe:800 OPEN \\hyenas\webstorage\dotnetnuke\website\bin\DotNetNuke.PDB NOT FOUND Options: Open Sequential Access: Read
9:30:59 AM w3wp.exe:800 OPEN \\hyenas\webstorage\dotnetnuke\website\bin\DotNetNuke.PDB NOT FOUND Options: Open Sequential Access: Read
9:30:59 AM w3wp.exe:800 OPEN \\hyenas\webstorage\dotnetnuke\website\bin\DotNetNuke.PDB NOT FOUND Options: Open Sequential Access: Read
I concluded that from the entries above, the installer encountered a problem in web.config (since it went to the debug file directly after closing it). The only thing funny about my web.config is that, because of an application hosted under our DotNetNuke install, I am forced to use the tag:
<location inheritInChildApplications="false"></location>
This tag surrounds the connectionStrings, appSettings, system.codedom, and system.web portions of my web.config so that information does not get inherited to the other application. After temporarily taking that out of web.config, all modules upgraded successfully.