永发信息网

asp.net mvc项目中,为何在iis6上显示404错误,是何原因造成

答案:3  悬赏:0  手机版
解决时间 2021-02-12 12:17
  • 提问者网友:骨子里的高雅
  • 2021-02-11 12:16
项目本机运行不报错,而当放到租用空间上,就会显示404错误,但项目下新建一个空白页就可以直接访问,只是mvc的显示404错误,如何处理?
最佳答案
  • 五星知识达人网友:拾荒鲤
  • 2021-02-11 13:33
运行出现异常了,如果不是路径问题,就是缺组件之类的,webconfig设置为debug模式,看看返回的错误信息才能找到原因
在项目下建立一个静态页面访问看看能不能访问
能访问到说明是你程序内部错误
全部回答
  • 1楼网友:低音帝王
  • 2021-02-11 15:53
第一种尝试:use a wildcard mapping for aspnet_isapi.dll,为aspnet_isapi.dll启用通配符映射。这个翻译很别扭。^_^

  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
租用的空间你要改动web.config和那个iis的配置,因为mvc它引导的和普通的有些不一样
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯