博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我的IIS7.5竟然不支持ASP.NET路由
阅读量:7089 次
发布时间:2019-06-28

本文共 1833 字,大约阅读时间需要 6 分钟。

MVC模式下那些友好,屏蔽具体物理文件的URL让我眼馋,咱也想在WEB FORM项目用上一用。

按照指引,添加global.asax,写上路由代码什么的:

<%@ Application Language="C#" %><%@ Import Namespace="System.Web.Routing" %>
在IIS下一运行,居然报错,Page Not Found!

然后在VS2012里运行却可以,排除是路由写得不对的问题。

有大牛说,IIS7以前的版本,需要指定后缀名,加上.aspx,比如,应当用这种方式

routes.MapPageRoute("test",            "h.aspx/{product}",            "~/temp/test.aspx");

次奥,那这个路由还有什么意义?不过我试了一下,还真可以。但这样就没意思了。

这说明,我这个IIS7.5里面,如果不指定.ASPX,根本没有经过ASP.NET的处理,路由不起作用。

这很奇怪,我的IIS是WIN7下的IIS7.5,应用程序池模式是集成,ASP.NET4.0,一切都符合传说中的“无须任何配置就可以直接使用ASP.NET路由”的条件。

难道是因为我装了微软的URL重写模块?卸载,重启,不行。

重新注册ASP.NET4.0,也是不行。

谁来告诉我?

======================================================================================

2013-09-11

洒家来告诉你。

只要在web.config里,<system.webServer>加上这句就可以鸟:

应用程序池的模式需要为集成模式。

如果是经典模式,则要使用后缀名了,路由中的路径如果没有特定后缀名的话,是到达不了ASP.NET处理这一层的。当然可以使用.aspx、.ashx、.asmx这样的后缀名,如:

routes.MapRoute(            "test2", // 路由名称            "{controller}.aspx/{action}/{id}", // 带有参数的 URL            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值        );
不过容易混淆,如果项目是WEBFORM和MVC混用的话,就更加混乱了。因为为了避免对aspx页面使用MVC路由,通常会在global.asax里声明

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");        routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
这样MVC路由中有.aspx的将会被过滤掉。

可以使用.mvc:

routes.MapRoute(            "test2", // 路由名称            "{controller}.mvc/{action}/{id}", // 带有参数的 URL            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值        );
注意.mvc不是ASP.NET保留的后缀名,需要在IIS里映射。有些文章里说装了MVC以后就会自动支持,但我的操作系统是WIN7,IIS为7.5,装了VS2012,从微软站点下载了MVC3、MVC4都装不上,IIS里也不默认支持MVC后缀,没关系,自己映射也一样的:

或者直接在web.config里写也是一样的:

但是这些似乎都是多此一举。因为如果是IIS7,用集成模式就什么问题都解决了。如果是IIS6,我在两台win2003 sp2 + IIS6上试过,安装了MVC3 + MVC4后,也跟集成模式一样,根本不用什么后缀名。

转载于:https://www.cnblogs.com/leftfist/p/4258007.html

你可能感兴趣的文章
【Spark Summit East 2017】为了乐趣和利润的全球扩张
查看>>
Rss订阅
查看>>
Mac - gdb配置
查看>>
Vuejs——(4)v-if、v-for
查看>>
让Spark成为你的瑞士军刀
查看>>
[LeetCode]--40. Combination Sum II
查看>>
ART世界探险(16) - 快速编译器下的方法编译
查看>>
多线程常用方法 sleep wait join等以及对锁的控制
查看>>
MPEG-DASH新功能白皮书翻译
查看>>
关于图片在内存中的大小(k或者M)
查看>>
2018 一份"有点难"的iOS面试题(5年iOS开发)
查看>>
linux mint19-日常使用笔记
查看>>
如何快速掌握一个ui框架
查看>>
git过滤
查看>>
web开发安全框架中的Apache Shiro的应用
查看>>
赵童鞋带你入门PHP(一) 开发环境搭建
查看>>
JavaScript 七大继承全解析
查看>>
nginx正则表达式(上篇)
查看>>
Spark入门(六)--Spark的combineByKey、sortBykey
查看>>
一款Android图文识别与扫描软件
查看>>