Installing mojoPortal on Windows with IIS

For the easiest way to install mojoPortal content management system in IIS, see Easy Installation Using the MS Web Deployment Tool, for manual installation steps, continue reading this article below.

Tip: To become an IIS Guru, watch this series of free training videos by Scott Forsyth.

Installing the compiled binaries or source files under IIS on Windows

When you unzip the file containing these files you will have a folder named wwwroot with supporting files and folders beneath it. Put this folder wherever you want it on a local drive of the IIS Web Server machine. The wwwroot folder will be the root of the web site or application if you are using the binary release.  To clarify terms, consider that all ASP.NET  web sites are applications, but not all applications are web sites. There are many different ways to configure an ASP.NET web site or application under IIS but I will start with the simple examples that indicate the difference between a web site and an application.

The root of a web site url looks like this:


The root of an Application is not usually more than 1 folder deep and typically looks like this:


However, a sub folder is not always an application, we'll see how to tell the difference when we examine the IIS Management Console below. The first image shows the root web sites indicated by world icons.

Next we see the default web site branched down to show the applications below it indicated by the gear icons. This is under Windows Server 2003, the icons may look a little different under XP or Windows 2000.

If you want to setup mojoPortal as a Web Site,  right click Web Sites and choose New > Web Site. Follow the Wizard and point the Web Site to the wwwroot directory.  If you want to setup mojoPortal as an application, right click a Web Site and choose New > Virtual Directory, follow the Wizard and point the application to the mojoportal folder.

If you are working with the source files for Visual Studio, you will right click the Default Web Site and choose New > Virtual Directory, follow the Wizard and point the application to the "Web" folder under the mojoportal folder provided in the VS.NET release and use mojoportal as the alias. Once this is done you should be able to double click the solution file in the root of the mojoportal folder to open the solution in VS.NET. Your site will be at http://localhost/mojoportal which is the typical pattern when working with Web Apps under VS.NET. If you are using MS SQL, you'll need to make sure there is a project reference to the MSSQLData project from the mojoPortal.Business project.  If you are working with MySQL you will need to make the reference to the MySQLData project. You should never have a reference to both projects at the same time because they use the same namespace and signatures.

Edit the web.config file at the root of the site and set a valid connection string.

Important: mojoPortal needs to be able to write to some folders in order to log errors, index content for search, store photos, etc. Specifically, you need to give the ASPNET user (IIS_WPG and NetworkService on Windows 2003) write permission to the Data folder beneath the root of the web and all of its child objects. To do this, right click the folder in Windows Explorer and choose Properites, then select the Security Tab (in Windows XP, if you don't see the security tab, you need to enable XP Simple File Sharing). Click Edit and then Add to add the user (sometimes after clicking the Add button you may need to click Advanced and then Find Now to find the aspnet user) to the list and give it permission. You will need to click the Advanced button, and then Find Now and then you should be able to find the ASPNET user in the list. Give it full control of the Data folder as shown below:

before you click Apply or OK, click the Advanced button:

and make sure the checkbox at the bottom "Replace permission on all child objects..." is checked.

There are many other considerations for configuring IIS such as IP address, host headers, etc., but these vary depending on what you are trying to accomplish and whether your server is connected directly to the internet or you are using port forwarding from a router. Feel free to post specific questions in the forums and I will try to help.

IIS 7 Notes

If you are using a newtwork share for the site folder you may get security exceptions. See this Microsoft Knowledgebase article to solve the problem.

IIS 7.5 Notes

If you are using IIS 7.5 you may need to be aware of changes to the default identity for the application pool. This forum thread also talks about a common error under IIS 7.5.

If you get a security exception about hostingpermissions, you probably need to enable the application pool identity to load a user profile.

Potential IIS 6 Configuration Issues

Not long ago we had a report form someone using Win 2003/IIS 6 that after getting mojoPortal installed none of the friendly urls worked, they all returned a 404. The problem turned out to be a configuration error where the handler mapping for the .aspx extension was configured to "Verify if file exists" so if the file corresponding to the url did not exist on disk IIS would return a 404 without handing the request to ASP.NET. Since the friendly urls do not correspond to files on disk but are re-written to a real url by ASP.NET code, this configuration prevented the request from reaching mojoPortal code which would re-write the url to the real url. The solution was simply to uncheck the setting for "Verify if file exists". These 2 screen shots show how to find and un-check this setting.

step 1

step 2