ASP.Net MVC 2上的nginx /单声道2.8

我正在尝试在Linux环境中设置ASP.Net MVC 2应用程序。 我已经在VirtualBox上安装了Ubuntu 10.10,然后从源代码安装了Mono 2.8。 之后,我已经安装nginx并按照这里推荐configuration它。 不幸的是,FastCGI显示我的标准错误500页:

No Application Found Unable to find a matching application for request: Host localhost:80 Port 80 Request Path /Default.aspx Physical Path /var/www/mvc/Default.aspx 

我的应用程序位于/ var / www / mvc目录中。 我试图创build一些存根Default.aspx文件,并将其放在我的应用程序的根目录,但它没有帮助,同样的错误发生。 谢谢。

如果您的应用程序使用xsp(xsp4,如果您使用.net 4.0)? 在尝试配置到另一个Web服务器的连接之前,您需要确保它正在工作。

nginx知道在哪里可以找到mono吗? 你很可能有一个并行安装,它不会在默认路径。

我使用apache,但是你仍然可以在我的博客上找到一些有用的说明: http : //tqcblog.com/2010/04/02/ubuntu-subversion-teamcity-mono-2-6-and-asp-net- MVC /

我也一直在做一些测试,使用所有的ubuntu10.10二进制文件。 从我所能做的,nginx无法通过单声道服务器的主机名无法通过fastcgi协议接收它。 无论如何,教程一行:

  fastcgi-mono-server2 /applications=www.domain1.xyz:/:/var/www/www.domain1.xyz/ /socket=tcp:127.0.0.1:9000 

不起作用。 删除主机名使事情工作:

  fastcgi-mono-server2 /applications=/:/var/www/www.domain1.xyz/ /socket=tcp:127.0.0.1:9000 

但这当然会阻止使用多个虚拟单声道主机。

由于您正在运行ASP.NET MVC 2应用程序,您应该使用fastcgi-mono-server4。

在/ etc / nginx / fastcgi_param中添加以下行解决了我的问题。 它也允许使用多个虚拟主机。

 fastcgi_param HTTP_HOST $host; 

我刚才有这个问题,我也一直在单一站点上的文件:

我正在尝试启动fastcgi-mono-server,如下所示:

 sudo fastcgi-mono-server4 /applications=www.domain1.xyz:/:/var/www/www.domain1.xyz/ /socket=tcp:127.0.0.1:9000 & 

但是当我这样做的时候,我遇到了和你一样的问题。 我改变了这个:

 sudo fastcgi-mono-server4 /applications=/:/var/www/www.domain1.xyz/ /socket=tcp:127.0.0.1:9000 & 

它的工作(我不得不输入www.domain1.xyz/Home/Index查看我的MVC页面,没有制定出如何停止寻找www.domain1.xyz/default.aspx但XD)。

您需要确保您的站点配置中设置的域匹配传递给fastcgi服务器的域。 例如,如果你的默认站点( /etc/nginx/sites-enabled/default )具有以下配置:

 server { ... server_name www.domain1.xyz; ... } 

您需要将该域传递给fastcgi服务器:

 sudo fastcgi-mono-server4 /applications=www.domain1.xyz:/:/var/www/www.domain1.xyz/ ... 

那么当你访问该网站时,显然需要与你设置的域名一起。