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>
我正在使用 nginx
和 fastcgi-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_pass
和 fastcgi_params
来进行最低限度的配置,但我希望以上内容可以帮助那些遇到同样的问题。
我是 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>
我正在使用 nginx
和 fastcgi-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_pass
和 fastcgi_params
来进行最低限度的配置,但我希望以上内容可以帮助那些遇到同样的问题。