.NET Framework 不同版本共存

Versions of the .NET Framework and the IIS6 Application Pools

 

When a new version of any technology appears, there are always new rules to be considered.


 

As part of my job as a Web Administrator, I used to test the new web technologies on Testing Environment before applying it on the real one. Microsoft has made the .NET Framework starting with Version 1.0 followed by v1.1 and now there are new releases v2.0 and v3.0. Microsoft gave them the ability to run together on the same server at the same time.

 

Concepts

 

The same site can only run under one version of the .NET Framework. But if we have more than one Virtual Directory on that site, we can choose for each one of them to run on a different version of the .NET Framework.

original.aspx

 

IIS 6.0 uses the IIS 6.0 process model (w3wp.exe) and uses an isolation feature called application pooling. Application pooling enables applications to run together in one or more processes, as long as they share the same pool designation.


 

Applications that are assigned different application pools never run in the same process.

original.aspx

 

The Web Administrator can put the site and it's Virtual Directories in the same Application Pool.


 

original.aspx

He can also put each Virtual Directory in a different one.


 

original.aspx

When there is more than one version of the .NET Framework run on your server, they cannot be together on the same process. Every application pool have its own worker possess or/Processes. So every .NET Framework version must run on a different Application Pool.


 

 All of those concepts will lead to one rule:

The Rule 


 

You cannot run more than one version of the framework in the same application pool.


 

If you try to do so you will see this error appears:

Server Application Unavailable


The web application you are attempting to access on this web server is currently unavailable.  Please hit the "Refresh" button in your web browser to retry your request.


Take a look at your event viewer and you will receive Event ID 1062 that says:

"It is not possible to run two 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."


 

How to make your Application Available again


 

When you need to run a different version of the .NET Framework on a different Virtual Directories inside the site, you need to create a different Application Pool and assign for each Virtual Directory one of the Application Pools that you have created. Then you can make each one of this Virtual Directory run on a different version of the .NET Framework.


 

Note: To reduce overhead and resource consumption. Just have a separate pool for each version of the Framework and run all like Virtual Directories in the same pool


 

In this example we have one site with two Virtual Directories and we need to run each one of them on a different version of the .NET Framework and assign for each one a different application pool.


 

Create Two New Application Pools

  • Start Internet Information Services (IIS) Manager.
  • Expand the Application Pools Node - Right-click the Node, - New > Application Pool.
  • In the Add New Application Pool dialog box, type "AppPoolName" in the Application Pool ID text box. Leave the Use default settings for new application pool option selected, and click OK. Your new "AppPoolName" will be created.


Application Pool 1:

original.aspx


 

Application Pool 2:

original.aspx


Assign for each Virtual Directory a different application pool.

 

Virtual Directory VD1:


 

1. Right-click VD1 Virtual Directory > Properties

2. On Directory Tab > Choose the VD1AppPool from the DropDownList in the Application Pool section.

 

 original.aspx

 

 Do the same for the VD2 Virtual Directory.


 

VD2-Application-Pool-R.aspx 


 

Choose for each Virtual Directory to run under different versions of the .NET Framework.


 
  1. Right-click VD1 Virtual Directory > Properties
  2. On ASP.NET Tab > Choose the .NET Framework 1.1 from the DropDownList in the ASP.NET Version section.


 

original.aspx


 

Do the same for the VD2 Virtual Directory.


 

original.aspx


 

Now your applications on each Virtual Directory will run successfully under different Versions of the .NET Framework.


 

Important Note:

In the example I have just assumed that we have just two Virtual Directories ...But if we have 10 Virtual Directories and we need to have a separate pool for each version of the .NET Framework, We will run all like Virtual Directories in the same pool.

If there are 5 Virtual Directories on .Net 1.1 and another 5 Virtual Directories are on .Net 2.0

there will be just two Application Pools:

"
AppPoolFor1.1"

"
AppPoolFor2.0"


All 5 .Net 1.1 Virtual Directories (Applications) are in "AppPoolFor1.1" and all the .Net 2.0 Virtual Directories (Applications) are in the "AppPoolFor2.0".

 

From http://dotnetqpearl.net/blogs/securesign/archive/2007/03/31/Versions-of-the-.NET-Framework-and-the-IIS6-Application-Pools.aspx

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30193/viewspace-607213/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30193/viewspace-607213/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值