The Mighty Blog

Jan24

Written by:Will
1/24/2008  RssIcon

I received this error while installing a customized version of the DNN install package. Here is what happened...

First of all, it is not a recommended practice to modify any of the Core DNN files, including the install and upgrade packages.  Anyhow, I did.  This was to take advantage of the auto-install capability and automatically install some of our modules and skins.

Well, due to some problems that were encountered during the attempted install of the DNN portal, I ended up removing the custom modules and skins.  The good thing is that the install went without a flaw this time.  However, I kept getting this error when I attempted to view any page in the web site.

When I enabled the site to compile into debug mode, and tried to view the page again, it told me that the offending line of code was this:

ctlSkin.ID = "dnn"

Well, this perplexed me, since this is a part of the core code, and it obviously has been thoroughly tested.  So, I could only conclude that it was something I had done.

This is where we take a trip into Troubleshooting 101.  I then began to look at the lines of code just before this one.  More specifically, I looked at where ctlSkin was instantiated/dimmed and what happened to it afterward, up until the errored line.

To begin, this object is meant to hold a reference to the skin mechanism that is part of DNN and renders your skin over your page and modules.  First and foremost, it looks to see if there is a skin override contained in the URL querystring parameters. 

Then, it checks to see if there is an override in a cookie - but only if the querystring didn't populate the skin object.

Next, it checks to see if the page or site is assigned a skin.  If so, it uses this skin reference - but again, only if it was not previously populated.

Finally, if those steps did not prove to populate the skin object, it attempts to load the default skin into the skin object.  As we all know, this is the DNN-Blue skin that comes preinstalled on DNN.

Following that final attempt to load the skin object, we then have the line that attempts to reference the ID property of the skin object.  Since we get the aforementioned error, we can be confident that the skin object was not successfully instantiated through any of the previous attempts.

This could only mean one thing.  First, I didn't append a reference to the skin in the URL.  Second, I did not have a cookie to tell the site which skin to use.  Third, the page/site had no reference to the skin yet, because we hadn't even been able to see a page yet.  That would leave only one way for the skin object to get loaded - the default. 

If the default didn't load the skin, then the default could not be found.  I dashed for the skins directory...

~/Portals/_default/Skins/DNN-Blue/...

Low and behold, the skins folders were missing.  I had not installed a skin somehow.  Luckilly, I am pretty familiar with the skin installation logic.  All you have to do is copy over a previous rendered/installed skin package from another web site, and you're fixed!

I hope you enjoyed my momentary lapse in judgement.


Your name:
Gravatar Preview
Your email:
(Optional) Email used only to show Gravatar.
Your website:
Comment:
Security Code
CAPTCHA image
Enter the code shown above in the box below
Add Comment   Cancel 
Add to Technorati Favorites
Tweet about my blog
Will Strohl - The Mighty Blog - RSS Feed

Tag Cloud

Sort by:Tag | SizeRSS
camp   community   dnn   dotnetnuke   dotnetnuke®   event   example   free   get   group   integer   jquery   meeting   module   new   odug   orlando   search   session   think  
The opinions expressed here are the personal opinions of Will Strohl and do not necessarily represent the views and opinions of the DotNetNuke Corporation.
© Copyright 2004-2010 by Will Strohl. All rights reserved.Website Skinned By: Ralph Williams  Website Hosted By: Applied Innovations