百度空间 | 百度首页 
 
查看文章
 
xp下IIS不能新建站点?不妨使用apache+mod_aspdotnet解决
2008-11-08 16:57
我现在的OS用的是win2003,为什么不用xp呢?昨天就有朋友问我这个问题,我初步解释为“有的软件在xp里边支持不好”。其实,具体而言就是指xp下IIS不能新建站点这个限制。这对于我前一段用.net开发分布式站点的方案是不好应付的,所以,最后不得不因为这么一个小小的限制换到win2003系统。

不过,今天一个不经意的搜索让我了解到,原来是可以在xp里边摆脱这种限制的,前提条件就是,在apache这个web服务器里边来跑asp.net的网站。在google里边搜索“apache .net”出来的第一篇文章《How to make Apache run ASP.NET / ASP.NET 2.0》就告诉了我这种可能性。虽然该文提供的“mod_aspdotnet”这个模块指向的地址已经返回404错误了,不过通过别的文章发现,原来这个项目已经从apache怀抱转投向sourceforge了。

http://sourceforge.net/project/platformdownload.php?group_id=175077&sel_platform=1390下载到mod_aspdotnet模块后,安装,然后在/apache/conf/http.conf里边配置一下,就可以绕开IIS来跑asp.net网站了。另外,还能利用apache的网址重写模块直接支持网址重写,比起在IIS里边支持网址重写来说要轻松不知多少倍了。

在官方的文档《mod_aspdotnet module for Apache》里边可以看到mod_aspdotnet的基本配置:
LoadModule aspdotnet_module modules/mod_aspdotnet.so

AddHandler asp.net asax ascx ashx asmx aspx axd config cs csproj \
                   licx rem resources resx soap vb vbproj vsdisco webinfo

AliasMatch "^/(?i)aspnet_client/system_web/(\d+)_(\d+)_(\d+)_(\d+)/(.*)" \
           "C:/Windows/Microsoft.NET/Framework/v$1.$2.$3/ASP.NETClientFiles/$4"

<Directory "C:/Windows/Microsoft.NET/Framework/v*/ASP.NETClientFiles">
     Options FollowSymlinks
     Order allow,deny
     Allow from all
</Directory>


像这样配置以后,就可以配置相应的支持asp.net的目录了,比如:
AspNetMount /app-uri "C:/path/to/app"
Alias /app-uri "C:/path/to/app"
<Directory "C:/path/to/app">
     Options FollowSymlinks Indexes
     AspNet files
     Order allow,deny
     Allow from all
     DirectoryIndex default.htm default.aspx
</Directory>

不过,官方的介绍仅仅仍然停留在虚拟目录的层次上,没有看到关于Virtual Host如何配置的介绍。还好,在网易博客上边看到的《
apache + asp.net(转)》成功解决了这个问题,不妨来看看在我机器上完成的一个测试配置项:
<VirtualHost *:8080>
      DocumentRoot d:\workspace\active
      ServerName active.cc
    
    <IfModule mod_aspdotnet.cpp>
         
# 加载 ASP.NET 应用,当第一个参数为“/”时为整个虚拟主机都需要支持asp.net;
        AspNetMount / "d:/workspace/active"
       
       
# 设置应用asp.net的虚拟目录,当整个虚拟主机都需要支持asp.net时不要设
        #Alias / "d:/workspace/active"
       
        <Directory "d:\workspace\active">
            Options FollowSymlinks ExecCGI
                Order allow,deny
                Allow from all
                DirectoryIndex Default.htm Default.aspx
                           
                # 允许该目录支持网址重写
               
AllowOverride all
                RewriteEngine On
                RewriteBase /
                RewriteRule ^aa$ Default.aspx [L]
        </Directory>
    </IfModule>
</VirtualHost>

官方的文档指出,目前mod_aspdotnet兼容.net framework 1.x,对2.0的支持可能会在将来实现。不过,我应用上面类似的配置指向一个.net framework 2.0的asp.net网站时,还没有出现任何问题,因此在xp里边应用apache+mod_aspdotnet来解决xp下IIS不能新建站点的限制,应该是具有可行性的。

update/11月13日/
今天在vista上部署asp.net环境时,发现没有提前装好IIS,而且也没有vista的盘,不得已采取了apache+mod_aspdotnet的方法,还真跑起来了。

类别:技术追峰 | 添加到搜藏 | 浏览() | 评论 (1)
 
最近读者:
 
网友评论:
1
2009-08-19 16:07 | 回复
0000000
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu