Knowledgebase : DotNetNuke

You installed DNN chat module and received the following error

Compiler Error Message: BC30002: Type 'Web.HttpContext' is not defined.

In App_Code\Chat\DnnChatCodeHelper.vb
Line 308: Try
Line 309: Dim ctx As Web.HttpContext = Web.HttpContext.Current
Line 310: Dim lvstrImageRoot As String = String.Empty
Line 311: oCache = ctx.Cache.Get(key)


This issue is caused by adding Telerik controls in DNN 5.3.1 which adds DotNetNuke.Web.HttpContext. If modules don't use qualified paths and did import both system and DotNetNuke, the reference is now solved incorrectly.


Solution
open the file DnnChatCodeHelper.vb, located under the folder of App_code\Chat

DirectoryName:\\DNNDirectory\App_Code\Chat

Search Dim ctx As Web.HttpContext = Web.HttpContext.Current


and change to

Dim ctx As System.Web.HttpContext = System.Web.HttpContext.Current

You recently upgrade your DNN version, after upgrade you cannot login to your website and get "A critical error has occurred. An unexpected error has occurred". 

The database upgraded successfully and you don't see any errors in the server logs.

Fix:

In your web.config try changing 

<members defaultProvider="AspNetMembershipProvider">
<providers>
 <clear />

        <add name="AspNetMembershipProvider" type="DotNetNuke.Security.Membership.AspNetMembershipProvider, DotNetNuke.Provider.AspNetProvider" providerPath="~\Providers\MembershipProviders\AspNetMembershipProvider\" />
      </providers>
    </members>

to


<members defaultProvider="AspNetMembershipProvider">
      <providers>
        <clear />
        <add name="AspNetMembershipProvider" type="DotNetNuke.Security.Membership.AspNetMembershipProvider, DotNetNuke" providerPath="~\Providers\MembershipProviders\AspNetMembershipProvider\" />
      </providers>
    </members>

Make Sure "Use Captcha" is enabled in Admin > Extensions page by editing the Default Authentication options.

If you are unable to see the captcha image after properly enabling Captcha for registration or for those modules which support it AND IF AND ONLY IF your site is running in an ASP.Net 4.0 application pool, you will need to make modifications to web.config to allow Captcha and the LinkClickHandler and other handlers to properly load:


1. Open web.config for editing.
2. Locate the <handlers> section.
3. Within the <handlers> section there are a number of <add nam =" . . ." . . . /> nodes.
4. On all of those which include the following attribute and value

preCondition="integratedMode,runtimeVersionv2.0"

change the value to

preCondition="integratedMode"

5. Re-save and if necessary re-upload the modified web.config file.

Solution Provided by:  William Severance

  1. Open the web.config file of your DotNetNuke website.
  2. Search for the following  - <htmlEditor defaultProvider="FckHtmlEditorProvider">
  3. Replace with - <htmlEditor defaultProvider="TelerikEditorProvider">
  4. Save the web.config file.

DotNetNuke Error: "

Could not load file or assembly 'Telerik.Web.UI' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)".


PROBLEM
It is possible to receive the following error message after upgrading your web project with RadControls for ASP.NET AJAX to another version:
Could not load file or assembly 'Telerik.Web.UI, Version=XXXXX.X.XXXX.X, Culture=neutral, PublicKeyToken=XXXXXXXXXXXXX' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

 

DESCRIPTION
The problem is due to the fact that the RadEditor's DialogHandler and SpellCheckHandlerhttpHandlers are registered in the web.config file with their fully qualified names and their versions are not updated.



SOLUTION
After upgrading your project to another version, you should update not only the Telerik.Web.UI.dll in the /bin folder, but also the DialogHandler and SpellCheckHandler httpHandlers declarations in web.config file as shown below:

 

<httpHandlers>
      ...
      <add path="Telerik.Web.UI.DialogHandler.aspx" verb="*" type="Telerik.Web.UI.DialogHandler, Telerik.Web.UI, Version=2007.2.1107.0, Culture=neutral, PublicKeyToken=121fae78165ba3d4"
        validate="false" />
      <add path="Telerik.Web.UI.SpellCheckHandler.axd" verb="*" type="Telerik.Web.UI.SpellCheckHandler, Telerik.Web.UI, Version=2007.2.1107.0, Culture=neutral, PublicKeyToken=121fae78165ba3d4"
        validate="false" />
</httpHandlers>

You should write the fully qualified names only if the Telerik.Web.UI.dll is registered in the GAC. If the Telerik.Web.UI.dll file is placed in the /bin folder of your project you can register theSpellCheckHandler httpHandlers in the web.config file with their short names, e.g.:

<httpHandlers>
    ...
    <add path="Telerik.Web.UI.DialogHandler.aspx" verb="*" type="Telerik.Web.UI.DialogHandler, Telerik.Web.UI"
 validate="false" />
    <add path="Telerik.Web.UI.SpellCheckHandler.axd" verb="*" type="Telerik.Web.UI.SpellCheckHandler, Telerik.Web.UI"  validate="false" />
</httpHandlers>



Additional information: If the RadControls for ASP.NET AJAX VSExtensions are installed then theDialogHandler and SpellCheckHandler handlers will be automatically registered in the web.config file when the Telerik > RadControls for ASP.NET AJAX > Upgrade Wizard menu is used.


Solution Provided by Tlererik.

After Upgrading to a diffrent version of DotNetNuke, you may get the following error

"Could not load RadEditor. Invalid tools file. Check provider settings in the web.config: ~/Providers/HtmlEditorProviders/Telerik/Config/ToolsDefault.xml"


Solution:

Check the SQL Provider Version in your DotNetNuke Website, to do this navigate to:

>> Providers
>> DataProviders
>> SqlDataProvider

and check the highest version of the "SQLDATAPROVIDER File" type. similar to 05.05.01.SqlDataProvider or 05.05.02.SqlDataProvider.

If your SQLDATAPROVIDER File version is "05.05.02.SqlDataProvider", download the Instllation Pack of DotNetNuke 5.05.02 (Zip File) from DotNetNuke Website.

 

Follow the steps below to install the Telerik Editor Extensions:

  1. UNZIP the DotNetNuke Installation File.
  2. Login to your DotNetNuke website as "HOST" (Super User Account)
  3. In HOST menu click on Extensions, (make sure you're in DNN Edit Mode)
  4. In Extensions Menu, click "Install Extension Wizard"
  5. Click on Browse and select the file > DotNetNuke Instalaltion Files >> \Install\Provider\TelerikEditorProvider_xx_XX_xx_Install file
  6. Click on Next and follow the prompts.

After installation Restart DotNetNuke website from Host > Host Settings.

You tried to change the ASP .Net version from 2 / 3.5 to ASP .Net Version 4 / 4.5 and receive the following error:

Compilation Error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 
Compiler Error Message: CS1703: An assembly with the same identity ‘System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35′ has already been imported. Try removing one of the duplicate references. 
Source Error:

[No relevant source lines]

SOLUTION:

Have a look under DotNetNuke website_root/bin folder a DLL file called " System.Web.Extensions.dll" rename this file to any other file i.e. " System.Web.Extensions.dll.old".

Error: File Manager is currently unavailable. DotNetNuke.Services.Exceptions.ModuleLoadException: Object reference not set to an instance of an object. ---> System.NullReferenceException: Object reference not set to an instance of an object. at DotNetNuke.Services.FileSystem.FolderProvider.Instance(String friendlyName) at DotNetNuke.Services.FileSystem.FolderMappingInfo.get_ImageUrl() at DotNetNuke.Modules.Admin.FileManager.FileManager.PreloadFolderImages() at DotNetNuke.Modules.Admin.FileManager.FileManager.InitializeTree() at DotNetNuke.Modules.Admin.FileManager.FileManager.OnLoad(EventArgs e) --- End of inner exception stack trace ---

 

SOLUTION:

  1. Open the file in a text editor DesktopModules/Admin/FileManager/FileManager.aspx.cs 
  2. Locate the function : PreloadFolderImages()
  3. and make the following highlighted changes.


private void PreloadFolderImages()
        {
            IFolderMappingController folderMappingController = FolderMappingController.Instance;
            FolderMappingInfo folderMappingInfo = null;
            string imageUrl = String.Empty;

            foreach (var folderMapping in FolderMappings)
            {
                try
                {

                folderMappingInfo = folderMappingController.GetFolderMapping(folderMapping.Key);
                imageUrl = folderMappingInfo.ImageUrl;
                DNNTree.ImageList.Add(imageUrl);
                }
                catch {}

            }
        }

ThreadAbortException happens when the thread serving the request doesn't finish for a long time. The ASP.NET hosting process aborts this thread after certain time. You can adjust that time with:

<system.web>
<httpRuntime executionTimeout="600" />
</system.web>

By default the executionTimeout="90" seconds.

Instructions for the DotNetNuke install package.

Object reference not set to an instance of an object.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error: 

An unhandled exception was generated during the exec

 

SOLUTION:

Try to run th upgrade with install.aspx in URL (http://yourdomain.xxx/install/install.aspx)


You just upgraded your site to DNN6, and now your dropdown menu's appear behind the content. (MinimalExtropy Skin).

SOLUTION:

  1. Goto: Portals >> _default >> Skins >> MinimalExtropy >> css
  2. Open menu.css in text editor or Visual Studio
  3. Search for the following line
    1. /* SUB Menu Normal */
      .mainMenu tr.mi{
          background-color:#F8FAFF;
          z-index: 1000;
          font-size: 11px;
          font-weight:bold;
          text-align:left;
          color:#375162;
          line-height:2em;
          text-transform:none;
    2. Change z-index: 1000; to z-index: 905;
    3. Save the file and restart your DNN website.

When you navigate to HOST >> Portals in DotNetNuke website you receive the following error.

Error: Portals is currently unavailable.
DotNetNuke.Services.Exceptions.ModuleLoadException: Invalid URI: The format of the URI could not be determined. ---> System.UriFormatException: Invalid URI: The format of the URI could not be determined. at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind) at DotNetNuke.Common.Globals.AddPort(String httpAlias, String originalUrl) at DotNetNuke.Modules.Admin.Portals.Portals.FormatPortalAliases(Int32 PortalID) --- End of inner exception stack trace ---

SOLUTION:

  • Login to your DotNetNuke Website as HOST or ADMIN
  • Navigate to ADMIN >> Site Settings >> Portal Advanced Settings >> Portal Aliases
  • Make sure there is NO "~" or "/" after any portal aliases. If there is "~" or "/" delete it and save.
  • Restart the Application from HOST >> Host Settings.

Applies to:
DotNetNuke version 4.x.x

Symptoms:
When you click on a forum you get the following error:

 

Exception Details: System.ArgumentNullException: Value cannot be null.
Parameter name: value

Message: DotNetNuke.Services.Exceptions.PageLoadException: Value cannot be null. Parameter name: value ---> System.ArgumentNullException: Value cannot be null. Parameter name: value at System.Web.Caching.CacheEntry

 

Cause:
After a while of inactivity the user gets logged out, which causes the "AuthorID" to default to 0 in the database, and since there is no user with a UserID of 0 it causes a 'value cannot be null" exception.

Work Around:
To fix this in the database, there are two tables that needs to have their entries modified. they are "Forum_Forums" and "Forum_Posts"

  1. In "Forum_Forums" table, find the entry for the affected forum. Within that entry is a field called "MostRecentPostAuthorID" you will notice that this ID is 0, change that to a valid UserID
  2. In "Forum_Posts" find the corresponding entry within that table and change the UserID to a valid UserID.  The same UserID as above. (it will have a UserID of 0)

To clear/delete the search index tables manually. Follow the steps below:

  • Login as 'HOST' (Super user account)
  • In Host Menu select "SQL"
  • Copy the following 4 lines and paste them into the 'Script' text box:
    truncate table {databaseOwner}{objectQualifier}SearchItemWordPosition
    DELETE {databaseOwner}{objectQualifier}SearchItemWord
    DELETE {databaseOwner}{objectQualifier}SearchWord
    DELETE {databaseOwner}{objectQualifier}SearchItem
  • Check 'run as script'
  • Click executive
  • The search index will be rebuilt by the scheduler.

Using DNN4Less Mail Server.

  • Navigate to Host > Host Settings.
  • At Advanced Settings, click the Maximize  button.
  • At SMTP Server Settings, click the Maximize  button.
  • In the SMTP Server field, enter the SMTP address of the server. E.g. mail.yourdomain.com (replace yourdomain.com with your actual domain name)
  • At SMTP Authentication, select from the following options:
    • Anonymous  (This is the default option)
    • Basic (You should choose "Basic")
    • NTLM (Do not choose)
  • In the SMTP Username field, enter a SMTP Username. (admin@yourdomain.com (replace yourdomain.com with your actual domain name))
  • In the SMTP Password field, enter a SMTP Password. (your email password)
  • Click Update.

NOTE: Make sure that email address in Host \Basic Settings\Host Details is the same email address as you entered in SMTP server email address.

 

Using DNN4Less Mail relay service.

  • Navigate to Host > Host Settings.
  • At Advanced Settings, click the Maximize button.
  • At SMTP Server Settings, click the Maximize button.
  • In the SMTP Server field, enter the SMTP address of the server and the port number. E.g. relay.DNN4Less.com
  • SMTP Authentication, select from the following options:
  • Anonymous (This is the default option)
  • Basic (You should choose "Basic")
  • NTLM (Do not choose)
  • In the SMTP Username field, enter a SMTP Username. (xxxxxx@DNN4Less)
  • In the SMTP Password field, enter a SMTP Password. (your email password)
  • Click Update.

Using Google Apps.

  • Navigate to Host > Host Settings.
  • At Advanced Settings, click the Maximize button.
  • At SMTP Server Settings, click the Maximize button.
  • In the SMTP Server field, enter the SMTP address of the server and the port number. E.g. smtp.gmail.com:465
  • At SMTP Authentication, select from the following options:
  • Anonymous (This is the default option)
  • Basic (You should choose "Basic")
  • NTLM (Do not choose)
  • In the SMTP Username field, enter a SMTP Username. (admin@yourdomain.com (replace yourdomain.com with your actual domain name))
  • In the SMTP Password field, enter a SMTP Password. (your email password)
  • Check the SSL box.
  • Click Update.



Starting with DotNetNuke 4.5.4 a new feature was added that would allow SSL support for specific pages. When adding/editing pages within your DNN 4.5.4 (and later) website you will now notice one additional “Secure” setting under the:

  1. Advanced
  2. Other settings
  3. Check "Enable SSL
  4. Update the current page
This individual setting enforces the SSL requirement for a page. If a page has this option selected it will be transmitted via SSL.
  1. Login to your DNN website as host (Super User Account)
  2. Navigate to Host >> Portals
  3. Scroll down to Export Template and select the portal to export from the dropdownlist. You can also choose a file name and description if you wish.
  4. Checking include content will also copy the content contained in each page/module.
  5. Click export template

Once the portal has been exported you should receive a message like:-

The Portal Template Has Been Created to C:\...\yourdomain.xxx\Portals\_default\DefaultPortal.template

This will now allow you to create new portals (based on the above template) for this dotnetnuke installation. If you want to create it another dotnetnuke installation, copy the files (to \Portals\_detfault) *.template, and *.template.resources. (where * is your file name)

The .template file is the xml description of the portal and the .template.resources file contains the data for each page/module.

HTTP Error 500.21 - Internal Server Error Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list. 

Solution:

Run "aspnet_regiis.exe" program from command line (within Command Prompt):

run %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe –i

 Note: if your computer is 64 bit, then use the following:

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe –i

Restart IIS.

If above solution does not work for you try the other method below:

Click Start -> All Programs -> Accessories -> Run
In the Open textbox paste in the following line

For silent repair on 32 bit computer with .Net Framework version 4.0.30319 use:
%windir%\Microsoft.NET\Framework\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /q /norestart

For silent repair on 64 bit computer with .Net Framework version 4.0.30319 use:
%windir%\Microsoft.NET\Framework64\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /q /norestart

Click OK to start the repair
After, the repair ran for a few minutes, restart IIS.

 

To remove / hide the Search Text Box from DotNetNuke Menu bar:

  • Open the Skin file (../Portals/_default/skins/MinimalExtropy (or your custom skin folder)/index)
  • Remove the following code and save the file

<div class="search_bg">                                   

<dnn:SEARCH runat="server" id="dnnSEARCH"  CssClass="ServerSkinWidget" UseDropDownList="true" Submit="<img src=&quot;images/search.gif&quot; border=&quot;0&quot; alt=&quot;Search&quot; /&gt;" />     

</div>

Backing up and restoring a DotNetNuke site is easy, if done properly it will be quick and painless.  

Backup:

There are two parts of your site: the website file system and the database.  Both parts must be included when backing up and restoring.

File System: Simply make a .zip / .rar file of your website directory usually (httpdocs) Download it using FTP if you are on a hosted server.  
Database: You can use either your hosting control panel or SQL management studio to backup your database. (Backup file with .BAK is preferred) Zip the backup and download it.

Upload these two files to the new server.

Restore:

  1. Copy and paste your website files to your new server with in the 'httpdocs' folder of the domain.
  2. Restore your database to the new server.  You will need to create a new blank database and then restore the database.
  3. If there is going to be a change in domain name, eg from localhost to www.example.com.  Open your database with SQL management studio, and find the PortalAlias table.  Change every row with the old URL to the new URL.
  4. Change both connection strings in the 'web.config' file according to the new server, database, database user name and password.
  5. Make sure that IIS settings and file permissions are correct.

If you are DNN4Less client you can contact our Support Department to get assistance.

You can do this with a simple javascript trick.

  1. Remove the <Form> </Form> tags from your PayPal “Buy Now” code.
  2. Add onClick=”this.form.action=’https://www.paypal.com/cgi-bin/webscr&#8217;; this.form.submit();” to the buy now input button.
  3. Paste what is left into the html module

What it does is change the action for the Form that is already embedded into the DotNetNuke default.aspx page.

Example:
<input onclick=”this.form.action=’https://www.paypal.com/cgi-bin/webscr’;this.form.submit();” alt=”Make payments with PayPal – it’s fast, free and secure!” name=”submit” etc…

On Windows Server 2008 IIS 7.5

You can add rewrite rule in web.config file to redirect domain.com to www.domain.com

Option 1:

<system.webServer>
<rewrite>
   
<rules>
     
<rule name="Canonical host name">
       
<match url="^(.*)" />
         
<conditions>
           
<add input="{HTTP_HOST}" pattern="^www\.domain\.com$" negate="true" />
         
</conditions>
       
<action type="Redirect" url="http://www.domain.com/{R:1}" />
     
</rule>
   
</rules>
</rewrite>
</system.webServer>

Option 2:

<system.webServer> <rewrite> <rules> <clear /> <rule name="WWW Rewrite" enabled="true"> <match url="(.*)" /> <conditions> <add input="{HTTP_HOST}" negate="true" pattern="^www\.([.a-zA-Z0-9]+)$" /> </conditions> <action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}" appendQueryString="true" redirectType="Permanent" /> </rule> </rules> </rewrite> <system.webServer>

If for any reason you don't like the DotNetNuke 6 popup windows, you can close them by doing the following method.

  1. Login as HOST/ADMIN
  2. Go to ADMIN
    1. Site Settings
    2. Advanced Settings
    3. Usability Settings
    4. UNCHECK "Enable Pop-ups".

Note: Please follow un-installation instructions carefully and make sure you restore web.config first before proceeding to the next step.

Restore web.config file. Installation process updates web.config file. To restore it, find Config\reference.config in module installation directory. 10 entries in the file need to be removed from web.config. They are listed below for your convenience.


<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" />
<section name="castle" type="Castle.Windsor.Configuration.AppDomain.CastleSectionHandler, Castle.Windsor" />
</configSections>

<system.web>
<httpModules>
<add name="NHibernateSessionModule" type="AliSuite.Commerce.HttpModules.NHibernateSessionModule, AliSuite.Commerce.HttpModules" />
<add name="ErrorModule" type="AliSuite.Commerce.HttpModules.ErrorModule, AliSuite.Commerce.HttpModules" />
</httpModules>
<system.webServer>
<modules>
<add name="NHibernateSessionModule" type="AliSuite.Commerce.HttpModules.NHibernateSessionModule, AliSuite.Commerce.HttpModules" />
<add name="ErrorModule" type="AliSuite.Commerce.HttpModules.ErrorModule, AliSuite.Commerce.HttpModules" />
</modules>
</system.webServer>
<log4net configSource="DesktopModules\AliCommerce\Config\log4net.config" />
<hibernate-configuration configSource="DesktopModules\AliCommerce\Config\nhibernate.config" />
<castle configSource="DesktopModules\AliCommerce\Config\castle.config" />
</configuration>

 

  1. Uninstall 6 modules from Host tab.
  2. Delete all AliCommerce related tables which start with AS_C_. Select all AliCommerce tables, right click
    your mouse, select Delete menu and Delete Objects screen will display. On this screen, keep clicking OK
    button (at least 4 times) until all selected tables are deleted.
  3. Delete module installation directory.
  4. Delete the following dll files from Bin directory of your DNN site.

 

AliCommerce
GOOGLE APPS. SMTP SERVER can be used to send emails from any of your favorite email client or DotNetNuke.You can send email for any email address from any network that lets you connect to Google Apps. SMTP server, using your Google Apps. account.


To configure DotNetNuke to use Google Apps. SMTP Server, follow the steps below.

  1. Login into your DotNetNuke website as "HOST".
  2. Under Host Settings > SMTP Server Settings, enter the following information.
    1. SMTP Server and port: smtp.gmail.com:465
    2. SMTP Authentication: Basic
    3. SMTP Enable SSL: Checked
    4. SMTP Username: Enter your email address (Same as Host Email Address)
    5. SMTP Password: Enter your email password
    6. Click on update to save the settings

Check your web.config file for the following:

connectionString="Data Source=.\\SQLSERVER;Initial Catalog=Northwind_db_;Integrated Security=True"
The problem is "Data Source=.\\SQLSERVER;" - It's the double \\. That's an escape sequence in C#. Switch the connection string to .\SQLSERVER.
If this is not the case please check to make sure that your SQL Server Service is running.

Missing Host Settings Page in DotNeNuke:

  1. Go to your database,
  2. Expend Database
  3. Expend Tables
  4. Edit table "dbo.tabs"
  5. Make sure that PortalID is "NULL" for all rows where TabPath is starting with "//Host".

DotNetNuke Blog 4.1.X

Symptoms:
You try to add a blog entry in DotNetNuke Blog Module, after publishing the blog, No blog entry is available  "No recent Entries". No errors in event viewer, all seems fine but the recent entries persist in displaying "No recent Entries".

Solution:

  1. Login to your DNN site as Host/Admin
  2. Go to Blog page
  3. Under "blog List" Go to "Module options"
  4. Under "Advanced Settings" section, Make sure that .... Allow Summary HTML is CHECKED.
  5. Save the settings

Symptom:

  • You have an ASP.net based site which requires MODIFY permissions for the IWPD user
  • Some feature stopped working on your site, and the Support team corrected the issue, indicating that "permissions for the IWPD user needed to be reapplied".
    Information:

Background:

  • Each site has multiple unique users associated with it:
    • FTP user
    • An IUSR user, used for accessing/executing your site's HTML, PHP, and ASP based files.
    • An IWPD user, used for accessing/executing your site's ASP.net based files.
  • MODIFY permissions for the IWPD user can be removed due to a design flaw in Plesk. Around version 8.x of Plesk, Plesk began tracking permissions settings on each domain's directory structure, so that it could reapply them if/as necessary. Unfortunately, Plesk doesn't allow us to set the necessary permissions with the IWPD_user within plesk itself, so we set them manually outside of plesk. As a result, any subsequent changes in plesk, which cause it to reapply permissions, it removes that permission for the IWPD user we set manually.
  • IWPD permissions may be required for ASP.net applications which need to create or modify files (uploading skins, modules, and/or other files) and for the URL Rewrite ISAPI Filters. If Plesk removes these permissions, ASP.net applications will still function for operations that require READ access to the site files, but if any create/modify/delete operations occur, the ASP.net application will experience an ACCESS DENIED error.
  • What types of changes in plesk trigger it to reapply permissions, thus removing the manually added IWPD user permissions? The most common item is any change within the SETUP options for the domain... i.e., FTP password change, changing version of ASP.net or PHP, enabling/disabling custom error documents, etc). There may be other options within the control panel which also trigger the permissions reset.
  • To date, this has not been resolved in any version of Plesk.
  • This issue has the largest impact because it affects DNN sites, which require the additional MODIFY permissions for the IWPD user when adding files, adding a module, skin, or other extensions.

RESOLUTION:

As of 04/01/2011, DNN4Less Support Staff has identified a method for preventing Plesk from removing the IWPD user permissions, but this modification has to be applied manually on your domain. If you've been affected by this problem, please contact our support team.

From now on, any time DNN4Less Support Staff adds MODIFY permissions to a domain at a customer's request (for an DNN installation or other), we will also put this modification in place to ensure the permissions for the IWPD user are not removed in the future by plesk.

To solve this issue perform the following steps:

  1. Go to ADMIN >> Pages
  2. Look for a (hidden) page called "Search Results". if it is not present create it (in root level or child of Home) and set not to display in menu.
  3. Open Search Results page and validate, that it contains a single instance of Search Results module. if not, add it.
  4. If it is there delete it, and add it again to the same page.

Review some of the default DotNetNuke configurable settings, most of which have been configured for general ease of use. This article will show you how to modify some of these settings ito improve the overall performance of your DotNetNuke installation.

DotNetNuke is a large and flexible web platform and as such has many configurable settings. Most of these settings have been configured for general ease of use, so it is recommended that we review and modify some of these settings if we wish to improve the overall performance of a DotNetNuke installation.

1) Host Settings Configuration
Configuration - Check For Upgrades
When this option is enabled, your website will communicate with “DNN Corp” to check for upgrades. An upgrade check will be performed every time you view the module definitions page or if you view a page with the DNN control bar embedded.

We should turn this option off to reduce overhead and remove the annoying nag images.

Appearance - Show Copyright Credits
This feature injects the DNN copyrights into the page, this just adds more page weight and is not required.

We should turn this option off to reduce page overhead.

1.2) Request Filter Settings
DotNetNuke introduced the request filter feature starting with DotNetNuke 4.5.3, this feature enables you to setup request filters to block or redirect users.

If you do not specifically need this feature, then we recommend that you turn this option off.

1.3) Performance Settings
The default DotNetNuke performance settings are ok for testing environments but production environments will require these settings to be modified. The following sub sections will outline recommendations for the configuration of these items.

Page State Persistence
This setting determines whether the page’s view state is stored in the page or server memory. Although changing this option to “Memory” could reduce the overall size of the request sent to the user, in most cases it causes other problems and I personally recommend NEVER changing this value to anything other than “Page”.

Module Cache Provider
The module caching provider setting configures how DotNetNuke will store the output cache of its module objects. The proper configuration of this setting is dependent on the specific environment that the website will be hosted in. Shared Hosting and Dedicated hosting environments will typically see better results using “Memory” caching. In Cloud computing environments, disk based caching makes sense as website content is stored on a SAN or similar device with very good write speeds, and memory availability is limited.

Cache Setting
This performance setting is used to control how much of the underlying data is cached by DotNetNuke.
We recommend setting this option to “Heavy”.

Authenticated Cacheability
This setting is used to define the cacheability of content for authenticated users, this can be used to optimize what can and cannot be cached by downstream routers and machines when working with authenticated users. For more information on the values in this section please consult MSDN

I recommend that this setting is left at the default value.

Compression Setting
Enabling gzip compression is an easy way to reduce the size of the site payload and get a nice boost in performance. It is possible to disable the DotNetNuke compression and use IIS native compression, however, we have experienced issues with some third party modules and IIS level compression. Therefore it is recommended that we use the DNN functionality unless there is a specific need to compress at the IIS level.

Use Whitespace Filter
This setting will strip whitespace from your generated page content following the Regular Expression specified in the Whitespace Filter option under "compression settings". This option is NOT needed if you are using a compression method. If you are not using a compression method and still would like to see a reduction in page size you can use this option which will slim down the HTML size of your pages.

Output Cache Provider (DNN Prol Only)
This provider is used to cache the entire content of a generated page allowing for zero database lookups and page generation activities to be skipped for un-changed content. This option is not available in the community edition of DotNetNuke.

1.4) Other Settings
Enable Users Online
The Users Online feature allows DotNetNuke to show you which users are currently online. This process adds a fair amount of overhead and it is recommended that you do NOT have users online enabled.

Site Log History
The Site Log History setting controls the data retention policy used by the DotNetNuke Site Log.
We recommend that the Site Log History setting be set to “0” days which will disable all site log functionality.

Scheduler Mode
This setting controls how DotNetNuke scheduled tasks are triggered. The default configuration of “Request Method” requires that on page requests a check is performed to trigger any tasks. This mode introduces additional request overhead and can delay end-user experiences. We recommend setting this configuration option to “Timer Method”.

Enable Event Log Buffer
DotNetNuke writes all kinds of log entries to the event log, user login, page changes, etc. Enabling the event log buffer allows DotNetNuke to queue these log items to cache, thus reducing the number of database writes. Therefore it is our recommendation that this setting be enabled on all installations.

Auto Sync File System
This configuration option enables/disables the automatic file synchronization functionality. We recommend disabling this functionality as it is only needed if files are added to the portal via FTP on a regular basis.

2) Admin Settings
On DNN 5 portals, un-select “Enable Skin Widgets” if they are not being used. This will prevent additional page resources from being injected, and increasing the size of the page.

3) DotNetNuke Scheduler
This is another DotNetNuke sub-system that is worth configuring to ensure the website is optimized
for performance. The DotNetNuke task scheduler provides vital functionality, however if the tasks are
scheduled to run too frequently they will have an adverse impact on the websites performance.

We recommend the following task scheduler optimizations:

  • First disable all scheduler tasks that are not required by this website installation.
  • Configure “DotNetNuke.Services.Scheduling.PurgeScheduleHistory, DotNetNuke” to run every 12/24 hours (or whatever best fits your portal requirements, based upon how much Schedule Log your website generates)
  • Configure “DotNetNuke.Services.Search.SearchEngineScheduler, DotNetNuke” to run every 12/24 hours and retry after 24/48 hours. (again depending upon what best fits your portal requirements). Note: updating this setting will yield a significant improvement in performance.

4) DotNetNuke Event Log
Anyone who uses DotNetNuke for any period of time will soon discover that the “EventLog” can produce a significant hindrance on performance. It is very important to note that DotNetNuke by default does not clear the entries in “EventLog” table. Over time this table will grow to be very large.

You can enable the “EventLog” buffer feature, to minimize the impact, but I recommend truncating this table on a daily basis. This allows for a 24 hour rolling history for any diagnostics purposes and avoids rapid transaction log growth when deleting records. This can be accomplished a number of ways;

  • SQL Server Scheduled Job
  • Manual process
  • Or using a custom module.

Also disable all logs that are not essential for the website installation, this will reduce the number of database requests your website will need to perform, in particular:

  • Disable “Application Start” log entries
  • Disable “Application End” log entries
  • Disable “Scheduler Started”, “Scheduler Event Started” log entries

5) Authentication Providers
Starting with DotNetNuke 4.7.0 additional authentication provider modules were introduced. Website administrators can configure which authentication provider/s is used to authenticate the users against.

Most DotNetNuke sites will only require the standard DotNetNuke Authentication Provider. However, behind the scenes the website will incur a performance hit when additional authentication providers are enabled, even if they are not being utilized.

This performance hit is typically limited to the login page itself where DotNetNuke polls all enabled providers to see if they must be rendered, but the performance impact can be major.

It is our recommendation that all non-essential authentication providers should be disabled.

Credits
Article written by Bruce de Beer from Syncrony (PTY) Ltd.

Error:
DotNetNuke.Services.Exceptions.ModuleLoadException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. 

Error Detail:
Error: UsersOnline is currently unavailable.
DotNetNuke.Services.Exceptions.ModuleLoadException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) ---> System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.

Solution:
Make sure the connection string value under appSettings is the same as the connection string under the connectionStrings section.

Symptoms:
DotNetNuke Telerik Radeditor shows the background graphic rather than a blank white page to enter text.

Solution:

Step 1.

  • Make sure to backup "EditorOverride.css" file before editing.
  • Open "EditorOverride.css" file from (Providers\HtmlEditorProviders\Telerik) folder.
  • Add the following in the end

body
{
 background-image: none !important;
{

Save the file and check; If this does not solve the issue, perform step 2.

Step 2.

  • Make sure to backup "Skin Stylesheet" file before editing.
  • Open skin stylesheet (usullay called "skin.css") from your default skin folder (Portals\0\Skins\yourskin (where "yourskin" is the actual name of your real DNN skin)
  • Modufy the Skin Stylesheet as follows

    body { 

      background:transparent none repeat scroll 0 0;   margin:0 0 25px; /* Specific to skin */
      padding:0;    

    #Body {   background:#BE37TR url(images/bg_commun_header.jpg) repeat-x scroll left top;/* Specific to skin */    margin:0 0 25px; /* Specific to skin */   padding:0; /* Specific to skin */  

  • Save the file and check the RadEditior
  • You should be good now.

Feel free to leave comments.

You are trying to setup dnn 7 and receive the following error:

Parser Error Message: The connection name 'LocalSqlServer' was not found in the applications configuration or the connection string is empty.

FIX:

In your web.config file add the following to the "connectionStrings" section of your web.config file:

<remove name="LocalSqlServer" />
      <add name="LocalSqlServer" connectionString="Data Source=DBServerName;Integrated Security=false;Initial Catalog=DBName;User ID=DBLogin;Password=DBPassword" providerName="System.Data.SqlClient" />

Your "connectionStrings" section should look like this:

<connectionStrings>
    <!-- Connection String for SQL Server 2008/2012 Express -->
    <add name="SiteSqlServer" connectionString="Data Source=.\SQLExpress;Integrated Security=True;User Instance=True;AttachDBFilename=|DataDirectory|Database.mdf;" providerName="System.Data.SqlClient"/>
    <!-- Connection String for SQL Server 2008/2012
    <add name="SiteSqlServer" connectionString="Server=(local);Database=DotNetNuke;uid=;pwd=;" providerName="System.Data.SqlClient" />
    -->
      <remove name="LocalSqlServer" />
      <add name="LocalSqlServer" connectionString="Data Source=DBServerName;Integrated Security=false;Initial Catalog=DBName;User ID=DBLogin;Password=DBPassword" providerName="System.Data.SqlClient" />

  </connectionStrings>

If you have moved the site to a different server or even just a different domain name the problem might be in the site settings in the entry for the default portal alias. But if the site is not loading, you must edit the data in the PortalSettings table to alter the settings. 

In the PortalSettings table, find the record for your portalID (probably 0 but maybe not) where [Settingname]= DefaultPortalAlias. Clear the value on this record. 

Then find the record for PortalAliasMapping for the same portalID and if it is Redirect change it to CANONICALURL. Save the record and you might have to restart the application pool or touch (edit) the web.config to cause a site restart. 

 

DNN4Less can provide an upgrade of the DotNetNuke installation of your site upon request.  The fee for this service is $30.00 per DNN installation. To request an upgrade please Login to the Support Desk and create a Ticket request the upgrade with a statement approving the $30.00 upgrade fee.

If you wish to perform DotNetNuke upgrade please follow the steps below:

 

Clients are free to upgrade DotNetNuke themselves however when they do upgrade themselves we do not guarantee an error free upgrade. Make sure to read this article completely, carefully and follow all the important steps.

 

Important:

  1. Backup the database.
    1. To learn, how to perform database backup in DNN4Less control panel visit: http://bit.ly/Ym8NtL
  2. Backup the file system.
    1. To learn, how to perform full website backup in DNN4Less control panel visit: http://bit.ly/YMiqBQ
    2. You can also download the DNN file system to your local computer using FTP.
  3. Make sure you did steps 1 & 2 above.

 

    If the DNN installation uses third-party modules and / or skins that includes custom entries in the web.config file, the customer should consult with their vendor on the best way to perform an upgrade.

     

    Upgrade Instructions:

    Please Note: If upgrading to version 5.x.x your site must be set to ASP.NET 4.0, you can check the ASP.NET version in your DNN site by going to Host\Host Settings.

    1. Download the latest upgrade package zip.
    2. Extract the upgrade package zip folders/files into a temporary folder on your local system. Do not manually extract any .zip files contained within folders of the upgrade package.
    3. Turn off AutoUpgrade
      1. By default DotNetNuke will be set to "AutoUpgrade", this means that the first user to hit the default.aspx page on any portal within your DNN installation will trigger the upgrade process.  This is typically not a desired result as if an error occurs you might not be able to see the error log since the other individual started the upgrade.  The way around this is to update the "AutoUpgrade" appSetting, if you set this to "false" you will be required to navigate to the <yoururl>/Install/Install.aspx page to perform the upgrade. 
      2. <add  key ="AutoUpgrade"  value ="False"   />
    4. If your site is public, place a html file named "App_Offline.htm" containing at least 512 characters in the root website folder (httpdocs) to temporarily take the site offline to users while performing the next step. For your convenience a generic "App_Offline.htm" is attached below.
    5. Upload via FTP or other access all folders/files from the extracted upgrade package on top of (over write) the existing site's folders and files. Content that you have created, modules you have installed, etc. will not be overwritten. When prompted to overwrite an existing folder or file answer OK or YES.
    6. Remove or rename the App_Offline.htm file if you placed one in the root website folder.
    7. Browse to the website triggering the upgrade wizard which will prompt for host password and take care of everything from that point on. NOTE: If auto-upgrade has been disabled in the AppSettings section of web.config (step 3 above), you will need to browse to "<yourdomain>/Install/Install.aspx?mode=upgrade" to trigger the upgrade.

    All accounts include a temporary url that you can use to test your website. You'll want to use the temporary url in the following cases:

    1. Your domain was just registered, and is not fully activated
    2. You are migrating your website from another host to DNN4Less, and have not yet updated your DNS.

    What is my Temporary URL?

    Your temporary URL is your-domain.xxx.dnn4less.net (replace your-domain.xxx with your actual domain name)

    What does my Temporary URL do?

    Your Temporary URL allows you to test your website if your domain name is not yet pointing to our servers. This is typical if you are transferring your website to DNN4Less Hosting. Your domain name will still point to your previous hosting provider while you're uploading and testing your website on our servers.

    Important! The Temporary URL is not really temporary. It goes to the same location as your Web files. The difference between the temp and live site is how you access the files. You can access the server when your domain is not active or not pointing to your server with us.

    How do I setup a Temporary URL?

    1. Log in to your Control Panel 
    2. Click on Domains Tab
    3. Click on the Domain Name or "Manage hosting"
    4. Click on "Websites & Domains" Tab
    5. Scroll down to the end of the page and Click "Add New Domain Alias"
    6. In "
    7. Check all the options
      1. Synchronize DNS zone with the primary domain
      2. Mail service
      3. Web service
    8. Click OK

     

    How do I test my website with the Temporary URL?

    To test your website using the Temporary URL, simply visit that URL your-domain.xxx.dnn4less.net You should see your website at this point. You'll want to click on various links in your site and ensure each page is loading.

    Error: Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.

    Background:

    Viewstate is the process used by an ASP.NET Web page to persist changes to the state of a Web Form across postbacks e.g when a page post's back (such as after a submit button or asp.net server control is clicked), when the page reappears the various form fields still contain their data. This is because ASP .NET maintains the page (or view) state via the use of a hidden field placed on each page with a control.

    DotNetNuke has viewstate enabled by default, so module developers should take care to not use unnecessary server controls, or to disable viewstate at the control level, to ensure viewstate does not get too large and impact performance.

    Encryption:

    Viewstate encryption is a best practice and a good way to provide an additional level of security. This was enabled as the default for the 5.6.1 release, but is a recommended practice for all versions, to make this change add the viewStateEncryptionMode attribute to the pages node in web.config and set it to Always i.e.

    Fix:

    Edit the following line in your web.config file and set these values to false

    <pages validateRequest="false" enableViewStateMac="true" enableEventValidation="false" viewStateEncryptionMode="Always">