首页 / 知识
关于.net:IIS6上的ASP.NET MVC
2023-04-13 14:36:00

ASP.NET MVC on IIS6在哪里可以找到有关在IIS6上运行ASP.NET MVC的最佳实践的一些好的指导? 对于提供IIS7托管的Web托管,我还没有看到任何可行的选择。 主要是因为我不住在美国 因此,我想知道如何最好地在ASP.NET MVC中构建应用程序,并使其易于在IIS6和IIS7上部署。 请记住,这是针对标准Web主机的,因此无法访问ISAPI筛选器或IIS6中的特殊设置。 在开发针对IIS6的ASP.NET MVC应用程序时,还应该考虑什么? 任何功能不起作用? 更新:更大的问题之一是路线问题。 模式{controller} / {action}将在IIS7上工作,但不适用于需要{controller} .mvc / {action}的IIS6。 那么如何使它透明? 同样,请没有ISAPI和IIS设置。 我花了一点时间,但我想出了如何使扩展与IIS 6一起使用。首先,您需要对基本路由进行重新处理以包括.aspx,以便它们将通过ASP.NET ISAPI筛选器进行路由。
例如,如果导航到Home.aspx,则您的网站应该可以正常工作。但是Default.aspx和http:// [website] /的默认页面地址无法正常工作。那么如何解决? 好吧,您需要定义第二条路线。不幸的是,使用Default.aspx作为路由无法正常工作:
那么如何使它工作呢?好吧,这是您需要原始路由代码的地方:
当您这样做时,Default.aspx和http:// [website] /都再次开始工作,我认为是因为它们已成功映射回Home控制器。因此,完整的解决方案是:
而且您的站点应该可以在IIS 6下正常运行。(至少在我的PC上可以。) 另外,如果您在页面中使用Html.ActionLink(),则不必在整个网站上更改任何其他代码行。此方法负责正确标记控制器的.aspx扩展名。 由于无法修改IIS设置以将.mvc映射到ASP.Net,因此可以使用已经映射到ASP.Net的其他扩展名。例如,您可以使用{controller} .ashx / {action},它应该在IIS 6上即开即用。 如Phil Hack在本博客中所提到的,可以使用通配符应用程序映射在IIS 6中为ASP.NET MVC设置无扩展名的URL: 但是,正如Hack所提到的那样,这样做会影响性能。 如果可以在服务器上安装ISAPI筛选器,则不必使用该扩展。 基本上,您将匹配的URL路由到{controller} .mvc品种,然后在ASP.NET中重写此URL以删除.mvc -这样做无需定义任何额外的路由或向用户公开.mvc。
我在这里写过: 史蒂夫·桑德森(Steve Sanderson)在这里也有一篇不错的文章:http://blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/ 使用IIS6,您可以执行以下两项操作之一: 由于选项1在大多数Web主机上不可用,因此您必须使用数字2。
网址重写可以帮助您解决问题。我已经实现了允许在任何IIS版本上部署MVC应用程序的解决方案,即使使用虚拟主机也是如此。 我在IIS6上有一个示例应用程序。 我找到了快速解决方案。 (很脏,因为它包含带有扩展名的默认视图名称)。它不需要其他路由或任何特殊的东西。 (除非,您的默认路由必须为{controller} .aspx / {action} ...格式) 这是default.aspx
我的示例应用程序的默认操作是主目录中的index。 注意:我在Phil Haack的博客中看到了此代码。感谢Brian Lowe。 我有详细的分步指南,但是它要求您使用isapi_rewrite。在以下位置查看它:http://biasecurities.com/blog/2008/how-to-enable-pretty-urls-with-asp-net-mvc-and-iis6/ |
最新内容
相关内容
linux自动运行命令?
linux自动运行命令?,服务,系统,时间,代码,周期性,第一,命令,管理,在线,状态,linux计划任务(自动化执行任务的利器)1、Linux计划任务是一种自动linux开启运行命令?
linux开启运行命令?,系统,服务,工作,管理,状态,命令,标准,情况,环境,工具,linux中如何开机启动运行指定的应用程序或指令?1、开机启动时自动运linux运行wps命令?
linux运行wps命令?,软件,官网,名称,时间,电脑,系统,工具,环境,项目,数据,wps支持linux命令行下word转pdf吗?1、通过浏览器进入到wps官网,然后点linux运行cmd命令?
linux运行cmd命令?,电脑,系统,状态,情况,环境,命令,单位,管理,设备,数据,电脑运行命令怎么打开电脑运行命令需要同时按下“win图标”键和“R”linux运行两个命令?
linux运行两个命令?,网络,地址,系统,工作,暂停,命令,网站,密码,网上,入口,Linux下必须知道的11个网络命令1、netstat -r:打印路由表。路由表保linux命令运行代码?
linux命令运行代码?,代码,单位,系统,环境,连续,保险,工具,命令,文件,音乐,Linux中,运行一个C语言程序如何运行1、编译。由.c文件生成.o文件,写linux命令运行脚本?
linux命令运行脚本?,代码,系统,工作,设计,状态,命令,脚本,文件,目录,终端,运行linux脚本,遇到要按回车键,怎么让它自动应答,继续运行脚本?1、linux上运行的命令?
linux上运行的命令?,系统,工作,软件,网络,地址,信息,情况,命令,灵活,基础知识,linux系统常用操作命令linux常用命令有pwd命令、cd命令、ls命令linux怎么运行命令?
linux怎么运行命令?,系统,工作,首页,工具,终端,地址,命令,信息,电脑,情况,怎样把linux系统的命令行打开1、在Linux系统中,打开命令行窗口需要使linux右击运行命令?
linux右击运行命令?,系统,工作,设备,标准,首页,发行,电脑,终端,命令,文件,linux中如何使用命令?在linux中grep命令是非常有用的,它和管道(|)配linux如何运行命令?
linux如何运行命令?,系统,工具,基础,代码,环境,管理,网络,初级,密码,终端,Linux的命令行怎样打开在Linux系统中,打开命令行窗口需要使用终端(Terlinux接收命令运行?
linux接收命令运行?,系统,工作,工具,信息,地址,命令,连续,代码,管理,发行,linux系统命令行接收邮件1、rlogin:远程登陆命令,该命令与telnet命令