DNN Blogs

Written for the Community, by the Community

Upgrading DNN and Persona Bar DLL Fun

Written By CBPSC

Recently I was upgrading a DNN site that was on version 7.4.2. My target was the latest release, which at the time of this writing is version 9.6.1. I have successfully upgraded many DNN sites in the pasts, but this upgrade was through a few different major and minor versions and involved some in-depth investigation. I wanted to document my learnings to share them with the DNN Community in the case that they may be helpful to someone in the future. 

The Upgrade(s)
As I was upgrading the application, I made it all the way to 9.3.2 without any issues. Though, every upgrade after that was problematic. I first tried going to 9.4.0 and it would upgrade, but when I went into the Persona Bar no content would load and I was seeing a red error message at the top telling me that my internet connection was slow. I also saw a big error message when I clicked the “Sites” link that was telling me something about it being unable to locate a controller in the Persona Bar namespace. 

I started Googling and reading release notes and I saw where there was an update in 9.4.1 that fixed an issue with the Persona Bar not properly upgrading. So, I rolled back my DNN instance and tried the 9.4.1 upgrade package. I was hopeful that this would be the fix, but it resulted in the same issue. I followed this same process a few times trying later and later releases to see if any of them did the trick. I even went back and “unblocked” all the download package zip files to ensure everything that was needing to be unzipped was successfully unzipped. Still no dice. 

At this point I knew that just pushing through upgrades was not going to be fruitful. I started doing what most people in this position would do… I nagged friends on Slack, I compared web.config files, I investigated the log files, but nothing jumped out. 

Solving the Upgrade Puzzle
With nothing working I went back to the error message (referenced above) that only showed when I clicked the “sites” link. The message noted that it could not find a controller located in the Persona Bar namespace. At a loss for anything else, I went into the bin folder in the root of the application. I could see the Persona Bar DLL’s were there, yet I knew there was still an issue. The next thing I did was download and install a clean version of DNN 9.4.4. After installing this version of DNN I looked into the bin folder for it and sat the folders side by side and compared DLL’s. This is when the light bulb moment happened.

The site I was upgrading’s folder was on the left and the clean install of 9.4.4 was on the right. When I looked at the DNN.PersonaBar.Extensions dll there was a drastic size difference. The site I was upgrading’s dll was 117kb and the clean install’s dll was 1,096kb as illustrated in the below picture.

I removed the DNN.PersonaBar.Extensions dll from the site I was upgrading and replaced with the same dll from the clean install and then refreshed the browser. The application recycled and voila, everything was working as expected. For whatever reason the DNN.PersonaBar.Extensions dll was not getting upgraded as it needed.

Lesson Learned: The lesson learned was that if you are upgrading an older DNN site and you keep getting errors in the Persona Bar, check the DLL’s and be sure that you have the most current versions.

Total: 5 Comment(s)

Error: Object reference not set to an instance of an object.

In: at DotNetNuke.Modules.Blog.Templating.LazyLoadingUser.GetProperty(String strPropertyName, String strFormat, CultureInfo formatProvider, UserInfo AccessingUser, Scope AccessLevel, Boolean& PropertyNotFound) at DotNetNuke.Modules.Blog.Templating.BaseCustomTokenReplace.replacedTokenValue(String strObjectName, String strPropertyName, String strFormat) at DotNetNuke.Modules.Blog.Templating.BaseTokenReplace.ReplaceTokenMatch(Match m) at System.Text.RegularExpressions.RegexReplacement.Replace(MatchEvaluator evaluator, Regex regex, String input, Int32 count, Int32 startat) at System.Text.RegularExpressions.Regex.Replace(String input, MatchEvaluator evaluator, Int32 count, Int32 startat) at System.Text.RegularExpressions.Regex.Replace(String input, MatchEvaluator evaluator) at DotNetNuke.Modules.Blog.Templating.BaseTokenReplace.ReplaceTokens(String strSourceText) at DotNetNuke.Modules.Blog.Templating.GenericTokenReplace.ReplaceTokens(String strSourceText) at DotNetNuke.Modules.Blog.Templating.Template.ReplaceContents()

Thanks for sharing. I have done my upgrades from 9.3.2 directly to 9.6.1 BTW
Friday, June 5, 2020 ·
I do lots of upgrades and hadn't seen this situation before, thank you so much for sharing the details!!
Tuesday, July 7, 2020 ·

Would you like to help us?

Awesome! Simply post in the forums using the link below and we'll get you started.

Get Involved