“在 Linux 操作系统中运行 ASP.NET 4 (中)”中已经配置好了 openSUSE 11.3 操作系统。
现在,我们进入“GNOME 终端”,使用 ifconfig 命令验证一下本虚拟的 IP 地址就是一开始我们在宽带路由器中为它分配的静态地址。
如上所示,再使用 vim 编辑器编辑 /etc/hosts 文件,增加一个域名 ben.skyiv.com,如下图所示:

注意上图中的 IP 地址必须是 127.0.0.1,而不能是 192.168.1.251。在宿主机的 Windows Vista 操作系统中以管理员身份进入命令提示符,使用记事本编辑 C:\Windows\System32\drivers\etc\hosts 文件,增加一个同样的域名 ben.skyiv.com,注意此时 IP 地址必须是 192.168.1.251,而不能是 127.0.0.1,如下图所示:

我们的 openSUSE 11.3 操作系统已经安装好了 apache 软件,但尚未启用,如下所示:
那么,现在,让我们设置 apache 为开机随系统启动,并且现在就启动它吧:
现在让我们在宿主机的 Windows Vista 操作系统的谷歌浏览器中打开 ben.skyiv.com 网站试试看吧:

如上图所示,我们的 Apache 2.2.15 已经正常工作在 Linux/SUSE 操作系统上了。只不过现在该网站还没有内容而已。
在 openSUSE 操作系统中,Apache 的默认文档是放在 /srv/www/htdocs 目录下的。
openSUSE 操作系统已经为每个用户建立了 public_html 目录,例如我的用户就是 /home/ben/public_html 目录,用以放置该用户的网站的内容。可以通过 ben.skyiv.com/~ben 访问,这里 ben 是我的用户名,如下图所示:

从上图中可以看出,这个目录是空的,需要用户自己放里放东东。那么,我们就编写如下一个 index.html 吧:

再次在 Windows Vista 操作系统中访问 ben.skyiv.com/~ben 网页:

现在让我们来看看 mono 的版本:
这个 mono 2.6.4 的版本太低了。根据 mono 官方下载页面的指示,按如下步骤进行升级:
升级完成,再次查看 mono 的版本:
果然已经升级到最新的 mono 2.8.1 版本了。
在 Apache mod_mono configuration tool 网页可以生成运行 ASP.NET 所需要的 Apache 软件的配置文件,如下图所示:

生成的 ben.skyiv.com.conf 文件如下所示:
这个 ben.skyiv.com.conf 文件需要放在 /etc/apache2/conf.d 目录下:
然后创建 /home/ben/www 目录,并重启 Apache 服务:
现在让我们建立一个网站:

在 openSUSE 11.3 操作系统中访问 ben.skyiv.com 网站,如下图所示:

点击上图中的“服务器信息”,出现“The resource cannot be found”错误:

这是预料之中的,因为我们还没有编写 info.aspx 文件呢。从上图中可以看出,ASP.NET 是 2.0 版的。
现在,我们修改 /etc/apache2/conf.d/ben.skyiv.com.conf 文件,如下所示:

如上图所示,将 mod-mono-server2 改为 mod-mono-server4 。然后重启 Apache 服务:
然后重新访问 ben.skyiv.com/aspx/info.aspx 网页:

从上图中可以看出,已经运行在 ASP.NET 4 了。
现在,让我们来编写 info.aspx 程序吧:
网页文件 aspx/info.aspx 的内容如下所示:
01: <%@ Page Language="C#" inherits="Skyiv.Ben.Web.InfoPage" %>
02: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
03: <html xmlns="http://www.w3.org/1999/xhtml" >
04: <head runat="server">
05: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
06: <title>服务器信息</title>
07: </head>
08: <body>
09: <form id="form1" runat="server">
10: <a href="http://ben.skyiv.com">返回</a>
11: <hr />
12: <asp:GridView id="dgMain" runat="Server" >
13: <AlternatingRowStyle BackColor="#FFFFCD" />
14: <HeaderStyle BackColor="#AAAADD" />
15: </asp:GridView>
16: </form>
17: </body>
18: </html>
对应的 C# 源程序 src/info.aspx.cs 的内容如下所示:
01: using System;
02: using System.Data;
03: using System.Web.UI;
04: using System.Web.UI.WebControls;
05:
06: namespace Skyiv.Ben.Web
07: {
08: public class InfoPage : Page
09: {
10: protected GridView dgMain;
11:
12: public void Page_Load(object sender, EventArgs e)
13: {
14: if (IsPostBack) return;
15: dgMain.DataSource = GetInfo();
16: dgMain.DataBind();
17: }
18:
19: DataTable GetInfo()
20: {
21: DataTable dt = new DataTable();
22: dt.Columns.Add("项目", typeof(string));
23: dt.Columns.Add("内容", typeof(string));
24: AddRow(dt, "操作系统", Environment.OSVersion);
25: AddRow(dt, "公共语言运行库", Environment.Version);
26: return dt;
27: }
28:
29: void AddRow(DataTable dt, string name, object value)
30: {
31: DataRow dr = dt.NewRow();
32: dr[0] = name;
33: dr[1] = value.ToString();
34: dt.Rows.Add(dr);
35: }
36: }
37: }
编译响应文件 src/info.rsp 的内容如下所示:
然后就是使用以下命令进行编译了:
编译完成,网站的运行效果如下图所示:

至此,我们成功地在 Linux 操作系统中运行 ASP.NET 4。
参考资料
-
Mod mono
-
Apache mod_mono configuration tool