65.9K
CodeProject 正在变化。 阅读更多。
Home

Cassini 和 Apache 101

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.33/5 (5投票s)

2002 年 8 月 20 日

1分钟阅读

viewsIcon

256223

本文档描述了如何在 Windows 上为 Apache 2.x 配置并运行 ASP.NET

引言

Cassini 是一个用 C# 编写的 Web 服务器,您可以在 http://www.asp.net/ 上找到更多信息。

以下步骤将使 Apache 能够运行 ASP.NET

  1. 下载并安装 Apache 2.x for Windows(请记住停止 IIS)
  2. 修改 http.conf 文件
    # 
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_connect_module modules/mod_proxy_connect.so
    LoadModule proxy_http_module modules/mod_proxy_http.so
    LoadModule rewrite_module modules/mod_rewrite.so 
    
    # 
    ProxyPass /aspnet http://127.0.0.1:8080/ 
    ProxyPassReverse /aspnet http://127.0.0.1:8080/ 
    
  3. 为您的 ASP.NET 文件创建一个不同的目录(不是 http.conf 中的 /aspnet 目录),并启动 Cassini
    1. 如果您使用的是包含在 WebMatrix 中的 Cassini 服务器
      c:\path-to-cassini\webserver.exe /port:8080 /path:"c:\path-to-asp.net-sourcefiles"
    2. 或者,独立的 Cassini 服务器
      c:\path-to-cassini\CassiniWebServer "c:\path-to-asp.net-sourcefiles" 8080
  4. 测试
    • Cassini: https://:8080/test.aspx
    • Apache: https:///aspnet/test.aspx
    <!-- test.aspx -->
    <%@ Page Language="vb" %>
    <html>
    <body>
        <form runat="server">
            <asp:Calendar runat="server" />
        </form>
    </body>
    </html>
    

终极测试

如果一切正常,您可以继续进行“终极”测试,即在 Apache 上运行 ASP.NET Forums

  1. 手动安装 ASP.NET Forums(跳过第 7 步)
    请参阅: http://www.asp.net/Forums/ShowPost.aspx?tabindex=1&PostID=21470
  2. 添加到 http.conf(假设已完成上述修改)
    #AspNetForums
    ProxyPass /AspNetForums http://127.0.0.1:8081/AspNetForums 
    ProxyPassReverse /AspNetForums http://127.0.0.1:8081/AspNetForums 
    #aspnet_client
    ProxyPass /aspnet_client http://127.0.0.1:8082/aspnet_client 
    ProxyPassReverse /aspnet_client http://127.0.0.1:8082/aspnet_client 
    
  3. 启动 2 个不同的 Cassini,分别监听 8081 和 8082 端口。
    c:\path-to-cassini\webserver.exe /port:8081 /path:"c:\path-to-asp.net-forums" /vpath:"/AspNetForums"
    c:\path-to-cassini\webserver.exe /port:8082 /path:"E:\Program Files\ASP.NET\Client Files" /vpath:"/aspnet_client"

这不是最快的解决方案,但一切都正常工作。我决定使用 Homer 运行 10 个线程,每个线程 5 个套接字,在一分钟内对其进行“压力测试”,结果如下

页面 命中次数 TTFB* 平均值 TTLB* 平均值
/AspNetForums/Default.aspx 286 1024.96 7458.23

*: TTFB = Time To First Byte(首次字节时间),TTLP = Time To Last Byte(最后字节时间)

请记住,此测试是在我的 Thinkpad T21 800Mhz/512 MB 上完成的,该笔记本电脑里塞满了垃圾。

现在我正在等待有人编写 mod_cassini

参考

© . All rights reserved.