Installing DotNetNuke 4.5.5 on a Hosting Site 

In previous articles on this site I have provided tutorials for installing DotNetNuke to a local machine, however, I have never yet approached the topic of installing DotNetNuke to a remote web hosting provider.  I have been asked many times why and the answer is simple; installations to remote hosts are not really standardized as depending on the hosting providers environments the steps to install can differ greatly.  However, due to popular demand I have created this tutorial which will provide you the basic overview of how to perform a clean installation of DotNetNuke on a remote web hosting provider.  In the article I will try to point out the most common areas of difference between different hosting providers, I will also be providing specific examples regarding the use of the Plesk control panel which is what my hosting provider (3Essentials) uses.

First of all prior to starting this tutorial you must make sure that you have an established hosting account, an active domain name pointed to this hosting account, and you must be aware of all login information to your specific provider.  This login information includes but is not limited to FTP, Database, and control panel logins.  Below is a listing of each step that we will follow during this tutorial.

  • Prepare the hosting environment
    • Setup file permissions
    • Configure Database (if not already completed)
    • Validate ASP.NET Version
  • Download and Prepare DNN Files
  • FTP Upload of website
  • Triggering of DNN Installation Process

Preparing the hosting environment

This first portion of the install process is typically the most complicated and is ideally the only section of this article that will vary depending on your hosting provider.  Below I am providing installation instructions assuming the usage of Plesk as the application control panel.

Setup File Permissions

This step of the installation process is the one that is most commonly overlooked, therefore I am putting this as the first item on the agenda.  Basically due to the nature of DotNetNuke and the manner in which it allows you to dynamically install modules/skins/containers and the like you must ensure that the ASP.NET worker process account (ASP.NET in Windows 2000 / NETWORK SERVICE in Windows 2003) has full permissions to the ENTIRE installation directory.  Typically on a hosted environment you are NOT able to configure this using your control panel.  My recommendation is to submit a support request to your hosting provider with text similar to the following.

I am preparing to install DotNetNuke on my ____________ account. Can you please ensure that the ASP.NET Worker Process has full file permissions to the root of this domain.

The good news is any hosting provider should be able to understand this request and they can quickly make the needed changes.

Configure Database

DotNetNuke requires a SQL Server database to operate and this is something that must be configured.  Depending on your hosting provider the database and database user account might have already been configured, if not you might need to create the database and user.  The point to this step is to ensure that you have the following informaiton for your environment.

  • Database Server Name (The name/ip of the server where your database resides)
  • Database Name (The name of the database where you can store information)
  • Database User (The user account that you may use to access the database. NOTE: this account should have DBO permissions)
  • Database Password (The password for the username listed above)

You can obtain the Database Server Name from your hosting provider, most of them provide this information on their support sites. This value might be a fully qualified domain name (db1.3essentials.com) or as an ip address (10.12.12.5) or potentially a few other styles of values depending on their configuration. The remaining pieces of information all relate specifically to YOUR databaase on your server. If you are using Plesk you can obtain all needed information from the "Databases" section of your control panel.

If you are unsure of where to obtain this information contact your hosting provider.

Validate ASP.NET Version

This simple step is also one of the most common errors when installing DotNetNuke to a remote site. If you are installing 4.5.5 as this article is guided towards you MUST ensure that your website is configured to use ASP.NET 2.0. If you are using Plesk to manage your domain you can view the ASP.NET version in the settings page for your website, ensure that the version indicates (2.0.50727). Other hosting providers and control panels might provide a user accessible method for changing this or you might have to submit a support ticket, this all depends on the provider.

Once you have completed this step and received confirmation that you have ALL proper data values you can no proceed to the process of downloading and configuring the DotNetNuke installation files.

Downloading and Preparing DotNetNuke Files

To install DotNetNuke on a remote system you must first download the "Install" package of DotNetNuke 4.5.5 to your local machine, you must then UNZIP all files to a location on your computer to store the files before you migrate them to your hosting provider.  SO the first step is to download the files and unzip them to a location on your machine.  For the ease of explaination I am going to assume that you unzipped the files to C:\DotNetNuke.

Now that you have your files on your local machine we need to make a few modifications. 

  1. Rename the release.config file to web.config.  This file is located in the root of the extracted files (C:\DotNetNuke\release.config in our example)
  2. Open the web.config file in your favorite editor, or Visual Studio whichever you desire.
  3. Modify the circled sections, this is configuring the connection to the database so substitute your values for "Server", "Database", "uid", and "pwd".  This format of connection string will work for any version of SQL Server.  You may use other valid connection string settings if desired, you may visit http://www.connectionstrings.com for assistance with other formats
    Connection String Values to Change
  4. Locate a setting called <add name="AutoUpgrade" value="True" />, change the value on this to "False"
  5. Locate a setting called <add name="UseWizard" value="True" />, change the value on this to "False"
  6. Save the modified document

Now that you have completed these web.configuration changes you have a DNN Installation that is ready to be uploaded to your website.

FTP Site to Hosting Provider

This step of the process is very simple, however, there are certain circumstances with hosting providers that can cause issues.  When using FTP to upload it is VERY important to make sure that ALL files are copied.  Due to potential timeouts and issues with FTP clients I highly recommend copying the files to your hosting location 1 folder at a time.  Copy the admin folder first, then the app_code folder, etc.  This will allow you to not only closely monitor the upload but will also allow you to quickly re-upload files in the case of an error.

Be sure when uploading these files that you are loading them to the proper location on your web host.

Execute the DotNetNuke Installation Process

Now that your files have been uploaded you just need to trigger the DotNetNuke installation process.  You can do this by going to the following url http://www.mysite.com/install/install.aspx?mode=install (Where mysite.com is your domain name).  This should bring up the DNN install process where it should let you know that it is upgrading DotNetNuke and will provide you status messages.  If you receive a message that says unavailable, please try to visit the link again.  The installation should proceed with NO errors and should then provide a link that tells you to "Click here to access your portal".

You have now successfully installed DotNetNuke!  You should be able to login to your host account with the default password of dnnhost.  Be sure that you login with both the default host and admin accounts to reset the passwords and secure your DNN installation.

I hope this article has helped those looking to install DNN on a remote hosting provider.  If you need assistance please make a post in the forums on this site, if you have a general comment please feel free to leave it below!

Posted by Mitchel on Thursday, September 06, 2007
 

Comments

Excellent! Just what I was looking for Mitch, THANKS!
A question: somewhere I found a recommendation to change this item in web.config: ===> objectQualifier="dnn_" <=== what is your opinion on this element? Should it be changed?
Also, I noticed in this file: DotNetNuke_04.05.05_Install.zip a release.config and a web.config ... I like this because I can compare my modified web.config to what was sent in the zip file.

By bobr2k on Friday, September 07, 2007 at 12:46 PM

Bob,

I personally do NOT use an object qualifier as I find that

1.) Many third party modules do not properly implement the object qualifier
2.) I am only storing DNN tables in my database so I don't have a need to add it in

There are times that it is helpful, say if you want 2 DNN installs on the same database, but otherwise my opinion is to NOT use it.

By mitchel.sellers@gmail.com on Friday, September 07, 2007 at 12:52 PM

Comments from the following blog entry: How to Install DotNetNuke 4.5.5 on a Remote Host, located at: http://www.dotnetkicks.com/tipsandtricks/How_to_Install_DotNetNuke_4_5_5_on_a_Remote_Host

By DotNetKicks.com on Thursday, September 13, 2007 at 10:51 AM

Thanks Mitch, extremely helpful and easy to follow.

By Craig Roberts on Wednesday, September 19, 2007 at 12:05 AM

Thanks a lot Mitchel for the great post. I followed those steps, I'm not sure about the ASP .NET process permission on the folders, I emailed my hoster for that. But right now I get the following error, after going for the install url, I'm curious to know that if this issue solves just by giving permission to the directories or not?


Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS.

Source Error:

Line 58: </system.codedom>
Line 59: <system.web>
Line 60: <machineKey
Line 61: validationKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902"
Line 62: decryptionKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902F8D923AC"

By hellriserchet on Wednesday, September 19, 2007 at 11:37 AM

This error message would be due to the fact that there is another web.config file that is further up in the folder structure from your DNN web.config.

You must make sure that your DNN web.config file is the first web.config file in the virtual directory.

By mitchel.sellers@gmail.com on Wednesday, September 19, 2007 at 1:55 PM

I checked the upper directory over my portal directory and no there's no web.config file there. What else can cause this issue?

By hellriserchet on Wednesday, September 19, 2007 at 9:10 PM

It could be caused by the way your hosting provider has the virtual directory setup.

If you are 100% sure that there are no web.config files further up the folder structure, i would submit a support request to your hosting company to ensure that the virtual directory root is set to where your DNN install is.

By mitchel.sellers@gmail.com on Thursday, September 20, 2007 at 3:37 AM

Well I actually had uploaded the whole files in a directory called "portal". To see what happens, I copied them in the root folder of my provided space and now when I go to the install URL, (www.mydomain.com/install/install.aspx?mode=install) I get a different error! I'm confused, what on earth has changed that it shows a different error! Here it is:

Server Error in '/' Application.
is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)
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.BadImageFormatException: is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[BadImageFormatException: is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)]
System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +0
System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +211
System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +141
System.Reflection.Assembly.Load(String assemblyString) +25
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +32

[ConfigurationErrorsException: is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)]
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +596
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +3487321
System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +46
System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +177
System.Web.Compilation.BuildProvidersCompiler..ctor(VirtualPath configPath, Boolean supportLocalization, String outputAssemblyName) +180
System.Web.Compilation.CodeDirectoryCompiler.GetCodeDirectoryAssembly(VirtualPath virtualDir, CodeDirectoryType dirType, String assemblyName, StringSet excludedSubdirectories, Boolean isDirectoryAllowed) +347
System.Web.Compilation.BuildManager.CompileCodeDirectory(VirtualPath virtualDir, CodeDirectoryType dirType, String assemblyName, StringSet excludedSubdirectories) +125
System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +378

[HttpException (0x80004005): is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)]
System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() +57
System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +612
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters) +456

[HttpException (0x80004005): is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +3435023
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +88
System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +252


Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.210

I'd really appreciate if you help me this time too!

Thank you in advance.

By hellriserchet on Thursday, September 20, 2007 at 6:39 AM

hellriserchet,

This appears to be an incorrect setup in IIS. I have never seen that error before in my entire time working with ASP.NET.

I would check with your hosting provider to see if they have noticed a difference.

The reason that you received the different error is when you copied the files the web.config file ended up in the ROOT of the virtual directory and resolved your first error.

By mitchel.sellers@gmail.com on Thursday, September 20, 2007 at 7:24 AM

Well I got angry and deleted all the files in the root directory, after calming down, I uploaded the folders again, one by one, and this time it worked! Maybe some of the files were not uploaded correctly. It installed but just one of the modules called "File HTML" or something like that failed to install. I think I should read the manual and don't bother you more! Thanks a lot Mitchel for your great help. :)

By hellriserchet on Friday, September 21, 2007 at 8:59 AM

Hi Mitchel,

Just wanted to thankyou for this article. I have searched far and wide for something like this, and nothing I ame across made as much sense as your article. I have tried installing DNN (to run remotely, on my server) for 2 days now, with no luck. I am currently ftp'ing the folders, one by one, so let's see what happens after this... just a another question you might be able to help me with. When I try and create a user for my MSSQL database (in my Helm control panel), it keeps wanting the password to be 10 characters long. e.g. if I enter 'vegemite' which has 8 characters, when I go back into that screen it add two more characters (not that I can see what they are, just black dots)......?????

By Penny on Monday, October 22, 2007 at 2:22 PM

me again! one more question, if that's ok! I also have the option of setting up a database/user (in Helm) under "My SQL database" or "MS SQL Server"...which of these should I be using?

By Penny on Monday, October 22, 2007 at 2:26 PM

Penny,

Regarding the password issue, you would want to check with your hosting provider, I am not familiar with Helm..

FOr DNN you will need to use MS SQL Server!

By mitchel.sellers@gmail.com on Monday, October 22, 2007 at 5:19 PM

Thankyou Mitchel. Just thought I'd add that I had to change my autoupgrade and installwizard settings to "true" for the installation to work. I am installing version 4.6.2 of DNN though, so things have probably changed....

By Penny on Tuesday, October 23, 2007 at 2:18 AM

Michael,
I am receving a runtime error and am not getting any information on what the error is. Also, Where can i get DNN 4.3.3.

My hosting company only supports that one. Can you give me some guidance to where it can be found.

Thank you

By Erick, SGT US Army on Sunday, October 28, 2007 at 6:32 PM

Erick,

You can get the older version of DNN via the "legacy downloads" option on the download page at the DotNetNuke.com website.

Regarding your error, I would ensure that all files successfully transfered.

By mitchel.sellers@gmail.com on Monday, October 29, 2007 at 5:43 AM
Click here to post a comment

Disclaimer