[bug]Server Application Unavailable

 

这二天遇到一个问题,其错误信息如下:

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.

 

Administrator Note:An error message detailing the cause of this specific request failure can be found in the system event log of the web server.Please review this log entry to discover what caused this error to occur.

 

刚开始以为是权限的问题,可是对其权限查看过后,发现权限并没有错,???那为何会出错呢,问题在哪?说来也巧,此时正好想起第一次DEPLOY时出现的因为应用程序池的问题,然后迅速查看了一下日志,提示说我的应用程序需要一个“应用程序池”。发现了问题的所在就得去解决它。。。。没错~~解决它的方法就是为其单独设置一个“应用程序池”~

 

设置应用程序池是在IIS中设置,简单的步骤就是:IIS --> Local Computer -->

添加应用程序池 大概就是这样子的了!接下来就是为我们的应用程序赋予我们刚刚新建的应用程序池,如下图:

 

 

这样的话问题就解决了~!!!

 

对于WIN 2000的系统来说,好像没有应用程序池的设置(可能是我没有找到,还是怎么的?如果你知道的话,请告诉我,谢谢)。所以在WIN 2000的服务器上如果有DEPLOY 二个应用程序,而这二个应用程序又分别是:VS 2003 VS 2005时应该怎么办呢?因为我稍微了解了一下出错的原理,大根是这样的:

这个错误是由 IIS6 应用程序隔离机制造成的。IIS默认的应用程序隔离机制被称为:工作进程隔离模式,在此模式中,应用程序被分为多个组,每个组就是一个应用程序池,每个应用程序池之间是相互隔离的。 隔离的好处当然就是安全啦,稳定啦,等等。IIS中的每个应用程序池由一个工作进程分别进行管理,也就是"W3wp.exe" 。如果有多个应用程序池中的程序运行,我们就能看到多个w3wp.exe 我们平时新建的虚拟目录都默认被指向IIS6“DefaultAppPool" 中, 所以在默认情况下,不管你有多少个asp.net程序在运行,在“Windows任务管理器中你只能看到一个w3wp.exe进程。

     
出现上述错误的原因是: .net Framework 2.0的程序与.net Framework1.1(1.0)的程序被放入同一个应用程序池(默认情况下放入DefaultAppPool池),也就是由同一个工作进程: w3wp.exe 进行管理,而单个工作进程是无法同时管理不同的程序(或者不同版本的程序)的。如果先访问.net framework 1.1的页面,则工作进程先加载并管理了 1.1版本的程序集,此时访问.net framework 2.0web程序页面,Server Application Unavailable 错误就出来了。

 

既然这样的话,在WIN 2000中该如何处理呢?有空得去研究一下。。。。

posted on 2006-06-26 10:47  №阿儒№  阅读(686)  评论(0编辑  收藏  举报