gpt4 book ai didi

asp.net - 在 IIS 6 上使用路由部署 ASP.NET 4 Web 窗体应用程序

转载 作者:行者123 更新时间:2023-12-04 06:52:11 26 4
gpt4 key购买 nike

澄清一下,我正在考虑的场景涉及部署使用 的 ASP.NET 4 Web 窗体应用程序。 RouteTable.Routes.MapPageRoute :

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);
}
}

场景一:该应用程序不是作为现有网站中的虚拟目录托管的,而是一个独立的网站(它是它自己的起点)。它有自己的应用程序池。部署后,它无需任何修补即可工作。

场景二:该应用程序作为现有网站下的虚拟目录托管。它也有自己的应用程序池。然而, 我收到 404 错误 在尝试访问我绘制的路线时。幸运的是,我有让 MVC 在 3.5 sp 1 中工作的经验,所以我尝试了该方法:打开虚拟导演的属性对话框,转到“目录”选项卡,单击“配置”按钮,并添加通配符应用程序映射到 aspnet_isapi.dll 并取消选中“验证该文件存在”复选框。这使它起作用。

我的问题是为什么我必须在第二个场景中而不是第一个场景中添加通配符应用程序映射?如果有帮助,则在第二种方案中托管虚拟目录的根网站设置为 ASP.NET 版本 2.0.50727。

最佳答案

ASP.NET 4.0 启用无扩展 URL 的路由
在 ASP.NET v4.0 中,有一种更好的方法来启用路由。通常,您只对路由无扩展名 URL 感兴趣,而无需路由静态请求(HTML、JPG、GIF、CSS、JS 等)。在 v4.0 中有一项新功能,允许将无扩展名的 URL 定向到托管代码,而不会影响静态请求(HTML、JPG、GIF、CSS、JS 等)。由于此功能,在 IIS 6 上您不再需要通配符映射

请参阅此处了解更多信息:

MSDN

本质上,.NET 4.0 路由 dll 比 3.5 版本更智能。因此,较少的变通方法。在您的情况下,您的独立站点可能在完整的 .NET 4.0 中运行,而在您的虚拟目录中,根目录在 2.0/3.0/3.5 模式下运行。希望这可以帮助!

关于asp.net - 在 IIS 6 上使用路由部署 ASP.NET 4 Web 窗体应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2953713/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com