Web 表单 Url 单声道路由

Web Forms Url Routing in Mono

我是 mono 的新手,正在尝试 运行 一个带路由的简单 hello world 应用程序。虽然我的应用程序 运行 在 IIS 上运行良好,但当我浏览到站点的根目录时出现 404 错误。我的路线如下:

RouteTable.Routes.MapPageRoute("default", String.Empty, "~/site/home.aspx")

直接浏览文件 (http://myhostname/site/home.aspx) 有效。

我尝试使用以下 web.config -- 包含和不包含 system.webServer 部分:

<configuration>
<system.web>
  <compilation strict="false" explicit="true" targetFramework="4.0" />
  <customErrors mode="Off"/>
</system.web>
<system.webServer>
  <modules runAllManagedModulesForAllRequests="true">
    <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </modules>
  <handlers>
    <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </handlers>
  <validation validateIntegratedModeConfiguration="false" />
</system.webServer>

我正在使用 nginxfastcgi-mono-server4,我的 fastcgi_index 设置为 Default.aspx(我尝试了小写以及 Index.aspx)。

我在这里遗漏了什么或者单声道是否仅支持使用 MVC 进行路由?

原来是 nginx 配置问题。我没有在我的站点配置中指定 root

server {
   listen 80;

   location / {
     root /var/www/comparebetween/;
     fastcgi_index /;
     fastcgi_pass 127.0.0.1:9000;
     include /etc/nginx/fastcgi_params;
  }
}

我看到大多数博客都建议通过将 fastcgi_index 设置为 Default.aspx 并指定 fastcgi_passfastcgi_params 来进行最低限度的配置,但我希望以上内容可以帮助那些遇到同样的问题。