我正在尝试在 Apache 2 (Prefork MPM) 上安装 mod_mono。我使用的是 Ubuntu Karmic,只想要一个自动托管设置(这样就可以执行任何 .aspx 文件,类似于 PHP 的正常设置方式)。
我按照以下步骤安装 Mono:
$ apt-get install libapache2-mod-mono mono-apache-server2 mono-devel
$ a2dismod mod_mono
$ a2enmod mod_mono_auto
我已确认 mod_mono 已由 Apache 加载。但是,我尝试加载的任何 .aspx 页面均未处理就返回,并且仍具有application/x-asp-net
MIME 类型。就好像 mod_mono 处理程序从未在 Apache 中注册一样。
以下是 的内容/etc/mod_mono_auto.load
:
LoadModule mono_module /usr/lib/apache2/modules/mod_mono.so
下面是/etc/mod_mono_auto.conf
:
MonoAutoApplication enabled
AddType application/x-asp-net .aspx
AddType application/x-asp-net .asmx
AddType application/x-asp-net .ashx
AddType application/x-asp-net .asax
AddType application/x-asp-net .ascx
AddType application/x-asp-net .soap
AddType application/x-asp-net .rem
AddType application/x-asp-net .axd
AddType application/x-asp-net .cs
AddType application/x-asp-net .config
AddType application/x-asp-net .dll
DirectoryIndex index.aspx
DirectoryIndex Default.aspx
DirectoryIndex default.aspx
我甚至尝试过明确设置处理程序:
AddHandler mono .aspx .ascx .asax .ashx .config .cs .asmx .asp
似乎没什么帮助。有什么想法可以让它工作吗?
答案1
请注意 mono 不同于 php。即使只提供一个页面也需要启动 mono 应用程序。如何构建 aspx 文件(阅读:web 应用程序)非常重要。
我曾经见过需要使用 SetHandler 来强制 apache 将请求发送到 mono-server 的情况。
尝试类似...
<LocationMatch "\.(aspx)$">
SetHandler mono
</LocationMatch>