Views: 10949
Number of votes: 0
Average rating:

Vista and IIS7 as a Development Platform for EPiServer CMS

Since I have switched to Vista as the operating system on my development machine at work, I’ve reached a few conclusions on measures needed to be taken to run EPiServer on IIS7 in Vista. Note that this is not yet a supported platform (by EPiServer) so if you run into any trouble you need to solve them yourself or run EPiServer on a virtual machine.

(Read the original blog in Swedish)


Contents


Install the EPiServer Manager without .NET Framework 1.1

As you may know, Vista does not install the .NET Framework 1.1 by default. The EPiServer platform does not require 1.1 but the installation program, EPiServer Manager, gives a somewhat misleading error message when you try to run it on Vista. This is due to the .msi file having a .NET Framework 1.1 run-time dependency as prerequisite before installation. Unfortunately it gives you a message saying it’s ASP.NET 2.0 that is missing, but this is wrong.

There are two solutions to this problem. Either install the .NET Framework version 1.1 and continue the EPiServer installation, or modify the .msi file with the tool Orca.exe that is included in the Windows SDK and simply remove the .NET 1.1 verification. For instructions on how this is done, read “How to remove MSI dependency on .NET Framework 1.1”, by Ohad Israeli.

Configuring IIS6 Compatibility in IIS7

On the Control Panel (sub-category Programs and Features) the following parts are installed (at the least):

  • IIS 6 Management Compatibility
  • IIS 6 Management Console
  • IIS 6 Metabase and IIS 6 configuration compatibility

Activate or inactivate functions

Installation

After having done the previous preparations you should be able to install the EPiServer Manager without any problems. To be able to install web sites with EPiServer you can either turn off UAC (User Access Control) when running the EPiServer Manager or restart it as administrator to give the installation application permission to access the IIS configuration and the existing web sites.

At this point all we need to do is to use the EPiServer Manager to install EPiServer as a new site or on an existing site.  You can now also add the existing ASP.NET 2.0 based templates.

Extra Configuration

Give the user NETWORK SERVICE write permissions on the /upload/ folder and to the configuration file web.config. Since IIS7 has some new functionality and changed behavior you need to configure HTTP modules used by EPiServer to make the site function correctly. Edit %windir%\System32\inetsrv\config\applicationHost.config. To allow separate applications to define their own deviations from the safety configuration, replace:

<section name="requestFiltering" overrideModeDefault="Deny" />

With:

<section name="requestFiltering" overrideModeDefault="Allow" />  

Edit web.config. Replace the following section before the closing <configuration> tag: 

<system.webServer>
  <modules>
    <add name="WorkflowManager"
         type="EPiServer.Workflow.WorkflowManager, EPiServer.Workflow"
         preCondition="managedHandler" />
    <add name="SpiderSupport"
         type="EPiServer.Util.SpiderSupport, EPiServer"
         preCondition="managedHandler" />
    <add name="Initializer"
         type="EPiServer.Scheduler.Initializer, EPiServer.Scheduler"
         preCondition="managedHandler" />
    <add name="UnifiedFileSystem"
         type="EPiServer.FileSystem.UnifiedFileSystemModule, EPiServer"
         preCondition="managedHandler" />
    <add name="FriendlyUrl"
         type="EPiServer.Util.FriendlyUrlModule, EPiServer"
         preCondition="managedHandler" />
    <add name="ExternalUrl"
         type="EPiServer.Util.ExternalUrlModule, EPiServer"
         preCondition="managedHandler" />
  </modules>
  <validation validateIntegratedModeConfiguration="false" />
  <security>
    <requestFiltering allowDoubleEscaping="True" />
  </security>
</system.webServer>
This is the equivalent of running the command:
%systemroot%\system32\inetsrv\APPCMD.EXE migrate config "Default Web Site/epi1"
Default Web Site/epi1 is the IIS application path for your new EPiServer site.

Also added is a safety configuration to allow URLs with several escape sequences. If not, you would have problems with certain image files in the Admin and Edit-modes in EPiServer since they use images with the “+” sign in the name, for instance “T+.gif”.

Another step that could facilitate debugging would be to turn off friendly URLs. This would be to enable detailed error messages to be displayed when debugging on the development machine.

<add key="EPfEnableFriendlyUrl" value="False" /> 

Now check that the handling of 404-errors in the IIS is set to use a custom error page, at certain times the EPiServer Manager seems unable to set this automatically. Point the 404 page to ~/Util/NotFound.aspx and change "Error Responses" under Edit Feature Settings… to "Custom error pages". These settings can also be found under the Error Pages section of the EPiServer web site.

Also use the IIS Manager to make sure that the EPiServer web site uses "Classic .NET AppPool".

Select program pool

Integrated pipeline mode does not seem to be comfortable with EPiServer since the w3wp.exe process uses 100% of the CPU if it’s run in that mode.

So, after these measures EPiServer works splendidly for development under Vista and IIS7!


Further Resources

›› How to remove MSI dependency on .NET Framework 1.1, Ohad Israeli
›› More information about Orca.exe at Microsoft.com
›› Download Orca.exe (along with other Ms Windows SDK components)
›› Original blog by Per Salmi (in Swedish)

 

Please login to comment.