ASP MVC 学习系列——02 Deploy到IIS 5.1

 建立了一个ASP MVC project,实现了简单的login功能。当尝试部署到IIS的时候,出现问题:

除了default.aspx之外,其他页面都无法打开。

 

google了一下,发现原因是:

ASP.NET MVC框架靠ASP.NET Routing来将浏览器请求转到控制器行为上。

也就是说,当输入网址后,产生的浏览器请求,是不能被ASP MVC框架直接处理的,

需要ASP.NET Routing将其转化成控制器(controller)行为,才能找到相应的页面。

 

然而不幸的是,并不是所有的IIS版本都支持ASP.NET Routing:

  •     IIS7.0 (集成模式) - 支持ASP.NET Routing
  •     IIS 7.0(经典模式) - 需要针对ASP.NET Routing进行一些特殊配置
  •     IIS 6.0和更低版本   - 需要针对ASP.NET Routing进行一些特殊配置

<http://www.cnblogs.com/deafcat/archive/2009/03/03/1401966.html>

 

我用的是IIS 5.1,针对它的配置如下:

1) 在IIS应用程序配置中新增.mvc的映射方法:

IIS站点属性=>目录=>配置=>映射=>添加=>可执行文件C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_isapi.dll,扩展名为:.mvc 

动作可选全部,也可设定为:GET,HEAD,POST,DEBUG 同时必须选中脚本引擎且不能选择检查文件是否存在选项。

2) 修改MvcApplication类的RegisterRoutes方法:

将{controller}/{action}/{id}修改为{controller}.mvc/{action}/{id}。

示例代码:

 

 

这样,在Url里会有.mvc的后缀,对于这个扩展名,由于我们添加了对.mvc要用aspnet_isapi.dll处理的映射,

那么ASP.NET Routing可以将这个浏览器请求转换成相应的controller行为。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值