使用 mod_mono 为 .net 应用配置 apache

使用 mod_mono 为 .net 应用配置 apache

我在配置 mod_mono 和 apache 以使其正常工作时遇到了很大的问题。我曾经让它们工作过,但我似乎无法弄清楚我哪里出了问题。我使用的是 mono-server4。

我正在尝试使用与主网站不同的端口。因此,我在 /etc/apache2/sites-available(带有来自 sites-enabled 的链接)中有一个如下所示的 vhost 配置:

<VirtualHost *:9999>
  ServerName XXX
  ServerAdmin web-admin@XXX
  DocumentRoot /var/xxx

  MonoServerPath XXX "/usr/bin/mod-mono-server4"
  MonoDebug XXX true
  MonoSetEnv XXX MONO_IOMAP=all
  MonoApplications XXX "/:/var/xxx"
  <Location "/">
    Allow from all
    Order allow,deny
    MonoSetServerAlias XXX
    SetHandler mono
    SetOutputFilter DEFLATE
    SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vary
  </Location>
  <IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript
  </IfModule>
</VirtualHost>

我使用 mono-server4-admin 创建应用程序

mono-server4-admin --path=/var/xxx --app=/XXX --port=9999

当我启动 apache 时,出现错误:

Syntax error on line 13 of /etc/apache2/sites-enabled/xxx:
Server alias 'XXX, not found.

这对应于 MonoSetServerAlias 语句。所以我将其注释掉,当我这样做时,apache 启动了。但是,当我尝试访问该网站时,我收到 500 错误。

访问日志表明它正尝试通过端口 80 而不是 9999 访问应用程序。我不确定这里的问题是什么。 有人能帮我找出我错在哪里吗?

我的 mono-server4-hosts.conf 包含以下内容:

# start /etc/mono-server4/conf.d/RMRSite/10_XXX
     Alias /XXX "/var/xxx"
     AddMonoApplications default "/XXX:/var/xxx"
       <Directory /var/xxx>
         SetHandler mono
           <IfModule mod_dir.c>
              DirectoryIndex index.aspx
           </IfModule>
       </Directory>
# end /etc/mono-server4/conf.d/XXX/10_XXX

另外,我的 /etc/mono-server4/conf.d/XXX/10_XXX 包含以下内容:

This is the configuration file
for the XXX virtualhost
path = /var/xxx
alias = /XXX
vhost = localhost
port = 9999

答案1

愚蠢的问题,你的 Apache 配置中有这个吗?

NameVirtualHost *:9999
Listen 9999

相关内容