zuki之博
我来证明我的存在...

    前些日子,将机器操作系统升级到2003,当然IIS也同样升级到了6.0。早有听闻,IIS6.0与IIS5系列的有很大的不同,经过自己的实践发现,果然如此。这是不是也意味着使用会很大的不同--在不知道如何配置的情况下,是不是就不能像使用5.1时那么简便呢?
    事实就是如此!所谓就是:想了就有(我当初干嘛就想到问题呢?!)。后来,经过翻箱倒柜地找资料,慢慢也就各个击破了(感谢网上众多前辈的探索)。其实,了解后,一切也都是很简单的。下面,就列一下我遇到的两个问题吧:
     一、安装了IIS6.0、.net 2.0等后,配置网站发现对asp、asp.net网站都无法访问。
            其实这个问题很简单,Win2003在默认情况下,安全级别比较高。IIS6.0中web服务扩展的栏目,在其中需要设置web的扩展组件的启用与否。asp.net靠什么解析呢?当然不是IIS自己搞定啦,是aspnet_isapi.dll啊,那么这个就肯定是有关的啦。打开IIS管理工具,web服务扩展栏目如下:
         
         从上图可以很明白的看清楚了,启动Active Server Pages吧,然后再启用对应版本的.net扩展。另外初次安装.net 2.0后,列表中并不显示2.0的扩展,因此,需要手动添加一个就行了(记得选对版本哦)。

      二、同时跑了多个版本的.net应用,会程序Server Application Unavailable 的错误
      窗口系统事件日志,内容大概如下: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.
      原因是什么呢?哎,纳闷啊:(   IIS6.0已经将应用进程的名字都改变了,你还没有收到风吗?,查看一下任务管理器吧,看看见了吧,以前的aspnet_wp.exe不见,取而代之的是w3wp.exe了。IIS6支持多进程,但是它在同一个进程中只能跑一个.net版本,如果要它同时跑多个版本,那么就会出现这个错误了。IIS6有个创新的应用程序池的概念,如下图:
             
     你猜对啦,错误就跟这个有关系。一般来说,一个应用程序池都会启动一个对应的进程,一个网站、虚拟目录都可以指定一个对应的应用程序池。那么解决这个多版本冲突的问题,就只需要将不同版本应用设置不同的应用程序池,那么就解决了。
      三、其他琐碎问题,哪些都比较简单,不祥述了。
 
     以上都是一家之言,错误在所难免(特别是技术的东西),望指正!

posted on 2007-09-28 00:36  zuki  阅读(2639)  评论(0编辑  收藏  举报