I just installed 4.5.5 and the install went beautifully. It seemed to be very tight. The configuration of my portals went very smoothly as well. Rather than use the default /Portals/[portalID] directory structure, I opted to customize my home directory. The tool created new directories on the root of my DNN install without any problems.
After this process, attempted to browse to my newly created portals and a bunch of my modules were blowing up on the default dnn porta landing page. For example:
Error: Sponsors is currently unavailable.
DotNetNuke.Services.Exceptions.ModuleLoadException: StartIndex cannot be less than zero. Parameter name: startIndex ---> System.ArgumentOutOfRangeException: StartIndex cannot be less than zero. Parameter name: startIndex at System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy) at DotNetNuke.Modules.Html.HtmlModule.ManageUploadDirectory(String strHTML, String strUploadDirectory) at DotNetNuke.Modules.Html.HtmlModule.Page_Load(Object sender, EventArgs e) --- End of inner exception stack trace ---
I did a little investigating and another forum post tipped me off as to what might be the cause. It appears that throughout the DNN application there are hard-coded references to LastIndexOf("\portals\"). Assuming custom home directories are a newly added feature of 4.5.5 this call is obsolete resulting in a fairly critical defect.
The UserControlBase class makes available a public property called PortalSettings which is a reference to a DotNetNuke.Entities.Portals.PortalSettings instance. This class has a public property called HomeDirectory. I haven't had a chance to discover what the return value is but it would make sense to me if it was the intended (possibliy customized) home directory of a portal.
So a possible fix might be to use PortalSettings.HomeDirectory in place of the hard-coded "\portals\" string smattered throughout the app. Does this make sense to anyone but me?
Sincere Regards,
-B