asp.net mvc项目中,为何在iis6上显示404错误,是何原因造成
- 提问者网友:骨子里的高雅
- 2021-02-11 12:16
- 五星知识达人网友:拾荒鲤
- 2021-02-11 13:33
在项目下建立一个静态页面访问看看能不能访问
能访问到说明是你程序内部错误
- 1楼网友:低音帝王
- 2021-02-11 15:53
iis-网站-属性-主目录-配置-映射-插入--(注意不是添加扩展名),可执行文件名一般为c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll。 去掉"确认文件是否存在"的勾,即不选。
ok! 再打开浏览器, http://localhost:50002/,似乎一切都很美好!!但这就等于告诉iis,每一次的请求,都要通过aspnet_isapi.dll,而无论是否是aspx文件。这不是我们想要的。
第二种尝试:put .aspx in all your route entries’ url patterns。在url格式中设置.aspx路由入口,即在global.asax.cs文件的registerroutes方法中修改默认的路由规则为
routes.maproute("default", "{controller}.aspx/{action}/{id}", new { controller = "home", action = "index", id = "" }); 这样一来,这样相当于欺骗iis6,告诉iis6 ,我是aspx文件,你处理一下我吧。
这样处理的结果就是地址栏变成了 http://localhost:50002/home.aspx/about或http://localhost:50002/weather.aspx,但浏览一朷正常。就是地址太恶心了些。
第三种尝试:use a custom filename extension in all your url patterns,在所有的url规则中添加一个可定制的扩展名如mvc等。
与第一种非常类似。iis-网站-属性-主目录-配置-映射-添加--(注意不是插入),可执行文件名一般为c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll,扩展名为.mvc,动作限制为“get,head,post,debug",同样 去掉"确认文件是否存在"的勾,即不选。因为这些文件并不是真正存在的,只不过为了欺骗可怜的iis6。其实与第二种的效果类似,只是可以定制后缀名,如".org"等。展示效果同第二种。
第四种尝试:利用第三方url组件。
1、发现原来用的isapi_rewrite不能在mvc环境正常使用。可能版本过低,是1.3full。
2、老赵推荐使用iirf(ionics isapi rewrite filter)开源,地址为: http://iirf.codeplex.com/
官方提供了mvc的匹配规则: http://cheeso.members.winisp.net/iirf20help/html/1ccbf1ec-0984-49d9-9ab0-63eab3ff9c63.htm
- 2楼网友:鱼芗
- 2021-02-11 14:29