【发布时间】:2011-02-26 13:52:24
【问题描述】:
为了澄清,我正在研究的场景涉及部署使用 RouteTable.Routes.MapPageRoute 的 ASP.NET 4 Web 窗体应用程序:
public class Global : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
RouteTable.Routes.MapPageRoute("questionnaires", "questionnaires", "~/Pages/Questionnaires/List.aspx", false);
RouteTable.Routes.MapPageRoute("questionnaires_submit", "questionnaires/submit", "~/Pages/Questionnaires/Insert.aspx", false);
}
void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
}
}
场景 1: 应用程序不是作为现有网站中的虚拟目录托管的,而是一个独立的网站(它是它自己的起点)。它有自己的应用程序池。部署后,它无需任何修补即可工作。
场景 2: 应用程序托管为现有网站下的虚拟目录。它也有自己的应用程序池。但是,我在尝试访问我已规划的路线时收到 404 错误。幸运的是,我有让 MVC 在 3.5 sp 1 中工作的经验,所以我尝试了该方法:打开虚拟导演的属性对话框,转到“目录”选项卡,单击“配置”按钮,并添加通配符应用程序图到 aspnet_isapi.dll 并取消选中“验证该文件是否存在”复选框。这使它工作。
我的问题是为什么我必须在第二种情况下添加通配符应用程序映射而不是第一种?如果有帮助,在第二种情况下托管虚拟目录的根网站设置为 ASP.NET 版本 2.0.50727。
【问题讨论】:
标签: asp.net routing .net-4.0 url-routing