摘要:
本来服务器上运行的是asp.net框架版本是1.1,网站IIS运行一切正常,但今天有客户需要安装.NET 2.0版本;安装了2.0版本后,服务器运行就出现Server Application Unavailable的提示.关键字:
Asp.net 2.0 Server Application Unavailable 正文:
本来服务器上运行的是asp.net框架版本是1.1,网站IIS运行一切正常,但今天有客户需要安装.NET 2.0版本;安装了2.0版本后,服务器运行就出现Server Application Unavailable的提示,令人莫名其妙,查阅相关文档,终于有了解决方法,原因是.net Framework 1.1和.net Framework 2.0有冲突。
具体错误信息会显示如下:
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 application event log of the web server. Please review this log entry to discover what caused this error to occur.
查看Event Viewer,看到的错误为:
Error:Failed to execute request because the App-Domain could not be created. Error: 0x80070005 Access is denied.
解决办法:在该web sites的virtual directory下,将Permissions设置一下,里面应包含:
ASP.NET
IWAM_MachineName
Local_Service
Network_Service
System
而且权限要设置为write & read.
设置后,一切运行正常.
另外还有一种可能:
放到打算购买的虚拟主机上(试用期内,我让他安装了.net 2.0)还是不行,他们应该是高手了,一直以为是自己发布的方式有问题,广求人,狂看帖,最终知道了是我安装了.net framework 1.1 和 2.0后,iis的应用程序池的配置有误,网上看到的解决办法如下:
你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误,答案当然是肯定的。但不作任何处理的默认情况下,会出问题!
各位在同一电脑上同时安装并运行.net 1.1 和 .net 2.0 两个版本的朋友要小心啊!
您的项目是不是时不时会出现 Server Application Unavailable 错误呢?或者一直连续都出这个错误!
今天我朋友将其从1.1升级至2.0的项目发布至公司安装有windows 2003的服务器上,结果2.0的项目始终无法成功运行。甚至还造成服务器上正在为全公司服务的基于.net Framework 1.1的web程序出错。他感觉很奇怪,在自己电脑上明明运行的很好啊,怎么一到服务器上就不行了?他发布2.0 web程序的过程如下:
1、在服务器上创建一个目录,然后将发布后的所有Web程序的文件复制到这个新建的目录。
2、在服务器的IIS上新建一个虚拟目录,然后将其配置成可以执行脚本的应用程序,(过程与创建.net Framework 1.1版本的程序相同。) 然后,将此虚拟目录的.net Framework 配置成2.0。
大功告成后,开始访问刚配置的程序,却得到如上Server Application Unavailable的错误。
之后向我求助,经过仔细阅读了IIS帮助文档,才发现,原来这个错误是由 IIS6 应用程序隔离机制造成的。IIS默认的应用程序隔离机制被称为:“工作进程隔离模式”,在此模式中,应用程序被分为多个组,每个组就是一个“应用程序池” ,每个应用程序池之间是相互隔离的。隔离的好处当然就是安全啦,稳定啦,等等。IIS中的每个应用程序池由一个“工作进程”分别进行管理,也就是"W3wp.exe" 。如果有多个应用程序池中的程序运行,我们就能看到多个w3wp.exe。我们平时新建的虚拟目录都默认被指向IIS6的“DefaultApp
[1][2]