Saturday, 28 April 2007

Missing ASP.NET tab on Windows x64 Servers

We've been creating ASP 2.0 applications and the first a new version of our eCommerce to RMS link software was ready to be deployed from our development servers to our production machines. We use a pair of AMD based IBM x326 servers as our front end web servers. Once we'd installed the x64 .net runtime, we realised that the ASP.NET pane had not appeared in the IIS management console when viewing a virtual directory. We've seen this before on x86 and normally running aspnet_regiis.exe -i from the .Net 2.0 framework directory would resolve this problem.
However further digging around made us realise that the 'snap in' which makes this appear does not work on x64, and at the current point in time Microsoft have no intention of fixing this. As such you need to install the scripts manually using the aspnet_regiis -sn command.

e.g. aspnet_regiis -sn

This is documented in some more detail here. However being more of a developer than an IIS admin the 'path to application' threw us. We have in the region of a hundred sites on this server so finding the path is a little tricky. I couldn't find all the steps required to get ASP 2.0 working in one place.

Firstly create a new virtual directory in IIS and create an application. You also need to specify and application pool, this must be an application pool which does not contain any .Net 1.1 applications as they can't both exist in the same pool. Whichever is called first (1.1 or 2.0) will lock the application and the other applications will fail with a cryptic service not available error.

To find the path of the application Microsoft recommend you use METAEdit

To find it the path we installed META Edit 2.2. Browsed to LM, W3SVC and then our site identifier (which can be found in IIS see screenshots below), then the virtual directory name in this case rmsLinkv3WebService.

As such you end up with aspnet_regiis -sn W3SVC/102785756/ROOT/rmsLinkv3WebService. This will install the ASP2.0 scripts and you can happy install your application.


Anonymous said...

Microsoft has deprecated MetaEdit and it is not supposed to be used with IIS 6 or higher as it may break things.

They now have a product called Metabase Explorer which is included with the IIS 6 resource kit tools.

Steve said...

There is an easier way of finding the identifier: Go to the site in IIS manager open it's properties window, then on the website tab, view the properties in the logging panel.

The log file name at the bottom of that dialog has the identifier in it.

xtfer said...

Easier still, select the Web Sites folder in IIS admin and loot at the list in the right pane. The identifiers are listed next to the sites. Of course, you still need the path...