.NET Framework 1.1 on IIS 7

I have inherited the .NET Framework 1.1 website, which I must host from IIS 7 on Windows Server 2008. I am having problems.

1. Installation

I installed the .NET Framework 1.1 after these instructions .

Installation automatically created a new application pool "ASP.NET 1.1". I am using this.

2. The problem

When I launch the website, I see web.config runtime errors:

The tag contains an invalid value for the culture attribute.

I will fix this and then look:

No child nodes allowed.

I do not want to continue to play this game with a cue-moth. Something must be wrong.

3. I'm sure this is .NET 1.1?

I am considering an automatically created application pool. I see that it is 1.1.

Additional settings...

Automatic AppPool .NET 1.1 Advanced

Basic settings...

Automatic AppPool .NET 1.1 Basic

This does not seem right.

As long as parameter 1.1 is set, it is not an option in the Advanced transition selectors.

And why in the base field is it just "v1.1" and not ".NET Framework v1.1.4322"? That would be more consistent.

4. I cannot create other .NET 1.1 application pools

I cannot select the .NET Framework 1.1 for other application pools. This is not an option in dropdown selectors. What's up with that?

App Pool missing .NET 1.1 option

Now what?

  • Why is parameter v1.1 not used for all AppPools applications?
  • How can I check if my application really uses the .NET Framework 1.1?
  • Why can I get these errors at runtime?
+6
source share
3 answers

A quick way to find out if an application is running under 1.1 is to quickly run a script that displays the version of the environment:

<%@ Page Language="C#" %> <script runat="server"> void Page_Load(Object sender, EventArgs e) { Response.Write(System.Environment.Version.ToString()); } </script> 

Or, if you get yellow death screens, you will see the version number at the bottom of the page: alt text

I suspect that you cannot select Framework v1.1 when adding a new application pool or changing an existing one, so the installer 1.1 does not know how to add a critical piece of metadata or configuration information in IIS.

.NET 2.0 ships with 2008 and .NET 4.0, a later product, and IIS7, so IIS is more likely to integrate better. Or, v1.1 does not have any significant metadata nugget that IIS7 InetMgr should be able to add to its various lists.

The reason you can see v1.1 in the drop-down list for the Basic Settings dialog for ASP.NET 1.1, and not in other pools, is that it is already installed and therefore will simply be included in the list. I experimented and changed this in a newly created ASP.NET 1.1 pool and installed it in 2.0, saved it, and then reopened it. As a result, v1.1 is no longer visible.

Also, the reason it is called v1.1 rather than the .NET Framework v1.1.4322 is because the value is selected from the managedRuntimeVersion attribute in the application pool configuration in applicationHost.config . The reason that versions 2.0 and 4.0 show a full description is because there is probably some IIS friendly metadata with a resource search string that is not available for version 1.1.

To set the pool to use v1.1 at creation time, you must manually set the managedRuntimeVersion attribute using APPCMD.EXE :

  appcmd add apppool / name: "NewPool" /managedRuntimeVersion:"v1.1 "

This is explained at the bottom of the article you are attached to.

To change an existing pool to use 1.1, you must also use the APPCMD.EXE command line APPCMD.EXE :

  appcmd set apppool /apppool.name:"SomeOtherPool "/managedRuntimeVersion:"v1.1"

Interestingly, you can set managedRuntimeVersion to any old value:

alt text

I would like to explain why the ASP.NET 1.1 application pool is magically created or how the installer handles the correct actions with handler mappings (anyway, all the correct preConditions installed, so either the installer has been updated, or IIS has some kind of trigger, to look for fixed 1.1 and fix things).

Update:

I contacted Bill Staple, author of this article:

How to install ASP.NET 1.1 with IIS7 in Vista and Windows 2008

I asked him about how the installer 1.1 or IIS7 manages to do the right thing with respect to handler mappings, creating an "ASP.NET 1.1" application pool, etc. This was his answer:

โ€œIf memory is running, Vista / Windows 2008 created an application compatibility pad that would detect the installer 1.1 and create an application pool / application handler mapping. However, in Windows 7 / Windows Server 2008 the R2.NET Framework 1.1 is no longer supported.โ€ and I wonโ€™t be surprised if this code is pulled out, although I donโ€™t know for sure. "

So the mystery is solved.

+7
source share

I ran into the same problems trying to install the old .Net 1.1. on Win2k8 / IIS7. In the end, I found it easier and faster to just get things up on .Net 2.0. I would recommend you do the same.

If your code does nothing exotic, the migration process can take a day or less for large enough projects.

+2
source share

Windows 2008 does not have .NET 1.1 installed. You can manually install .NET 1.1 .

+1
source share

All Articles