Mixing ASP.NET versions within single IIS?

  • Thread starter Thread starter sqlman
  • Start date Start date
S

sqlman

From what I have seen, running web apps that rely on different ASP.NET
versions within the same IIS install leads to problems ("Server
unavailable" errors and such.) On Windows 2003 and 2008 servers (IIS
6.0 and 7.0,) this is resolved by using different application pools
for different ASP.NET versions.

Now, what about Windows 2000 server? The IIS there has no application
pools, but I will still need to run more that one ASP.NET version side
by side. How do I do that? Or is it even an issue on Windows 2000
server?

Thanks!
 
From what I have seen, running web apps that rely on different ASP.NET
versions within the same IIS install leads to problems ("Server
unavailable" errors and such.)  On Windows 2003 and 2008 servers (IIS
6.0 and 7.0,) this is resolved by using different application pools
for different ASP.NET versions.

Now, what about Windows 2000 server? The IIS there has no application
pools, but I will still need to run more that one ASP.NET version side
by side. How do I do that?  Or is it even an issue on Windows 2000
server?

Thanks!

An application pool provides you with a way of isolating web sites
from each other: For example, if one site crashes because of a memory
leak, it won’t effect sites in other application pools. This is a
"new" feature starting from Win2003. On Windows 2000 if you have .NET
2 installed, you should see ASP.NET tab in IIS web site properties.
This is where you can choose ASP.NET version. You can also use ASP.NET
IIS Registration Tool (Aspnet_regiis.exe) to configure .NET Framework
version. For example, to configure ASP.NET 1.1 you should call
Aspnet_regiis.exe from

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -s
W3SVC/1/ROOT/Portal

More about aspnet_regiis.exe
http://www.asp.net/learn/whitepapers/side-by-side-with-1.0/
 
An application pool provides you with a way of isolating web sites
from each other: For example, if one site crashes because of a memory
leak, it won’t effect sites in other application pools. This is a
"new" feature starting from Win2003. On Windows 2000 if you have .NET
2 installed, you should see ASP.NET tab in IIS web site properties.

It is not only on the web site level, but also at every virtual dir
level. Also, both IIS config tools versions (on Windows 2003 and 2008)
also provide that tab. But as it turned out, it is not enough by
itself, and you still need to utilize separate app pools for different
ASP.NET versions to work side by side. We learned it the hard way.

http://dotnetslackers.com/articles/iis/ASPNETInternalsIISAndTheProcessModel.aspx

The questions is: what about Windows 2000/IIS 5.0? The tab is there,
but there is not support for app pools.


This is where you can choose ASP.NET version. You can also use ASP.NET
IIS Registration Tool (Aspnet_regiis.exe) to configure .NET Framework
version. For example, to configure ASP.NET 1.1 you should call
Aspnet_regiis.exe from

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -s
W3SVC/1/ROOT/Portal

More about aspnet_regiis.exe
http://www.asp.net/learn/whitepapers/side-by-side-with-1.0/

aspnet_regiis.exe is of no help here, because I have no issues with
ASP.NET registration. I am concerened with running ASP.NET 1.1, 2.0
and possibly 3.5 applications running side by side.

Thanks!
 
But as it turned out, it is not enough by
itself, and you still need to utilize separate app pools for different
ASP.NET versions to work side by side.  

This is true for IIS6 in Worker Process Isolation Mode: you cannot
load multiple versions of the CLR into the same process, which means
you cannot run applications of different ASP.Net versions in the same
Application Pool.

When multiple versions use the same pool you will see the following
error in Application Event Log "It is not possible to run different
versions of ASP.NET in the same IIS process. Please use the IIS
Administration Tool to reconfigure your server to run the application
in a separate process." and probably "Server
unavailable" at the front-end.
The questions is: what about Windows 2000/IIS 5.0?  The tab is there,
but there is not support for app pools.

ASP.NET on IIS 5.X process model (Aspnet_wp.exe) automatically runs
each version in a separate process at run time. All applications that
target the same version of the runtime share the same process.

http://msdn.microsoft.com/en-us/library/1kdfe21k(vs.71).aspx
aspnet_regiis.exe is of no help here, because I have no issues with
ASP.NET registration.

aspnet_regiis.exe is a tool to remap an ASP.NET application to the
ASP.NET ISAPI version associated with the tool. (Please see link
above)
 I am concerened with running ASP.NET 1.1, 2.0
and possibly 3.5 applications running side by side.

3.5 cannot be installed on Windows 2000.
 
This is true for IIS6 in Worker Process Isolation Mode: you cannot
load multiple versions of the CLR into the same process, which means
you cannot run applications of different ASP.Net versions in the same
Application Pool.

When multiple versions use the same pool you will see the following
error in Application Event Log "It is not possible to run different
versions of ASP.NET in the same IIS process. Please use the IIS
Administration Tool to reconfigure your server to run the application
in a separate process." and probably "Server
unavailable" at the front-end.


ASP.NET on IIS 5.X process model (Aspnet_wp.exe) automatically runs
each version in a separate process at run time. All applications that
target the same version of the runtime share the same process.

http://msdn.microsoft.com/en-us/library/1kdfe21k(vs.71).aspx


aspnet_regiis.exe is a tool to remap an ASP.NET application to the
ASP.NET ISAPI version associated with the tool. (Please see link
above)


3.5 cannot be installed on Windows 2000.

I was aware of some of the above, but thank you for the link! I also
learned something new there: that .NET framework is designed to be
backward compatible. I've always assumed that you need the original
version of the runtime all the time.
 
I was aware of some of the above, but thank you for the link!  I also
learned something new there: that .NET framework is designed to be
backward compatible.  I've always assumed that you need the original
version of the runtime all the time.

It depends on how application is designed, I think :-)
 
Back
Top