大概是iis设置问题,自定义的404页面不显示

跳动de指尖 2016-03-14 10:07:45

这个是我错误页的action

在IIS Express 和本地操作系统上的iis上面都没什么问题,能显示错误页 ,
但是发布到服务器之后,不知道哪里的配置出现问题,上面代码都有执行,日志有记录,但是不显示自定义的404页面




当然,Error这个视图也是有的 。
...全文
535 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
天空丶蒋 2016-04-11
  • 打赏
  • 举报
回复
配置文件设置一下404的地址. <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"> <error statusCode="404" redirect="跳转的地址" /> </customErrors> 详细的搜一下就有很多。。。
秋的红果实 2016-04-10
  • 打赏
  • 举报
回复
除了web.config配置外,还需要在IIS里设置
Net攻城狮 2016-04-09
  • 打赏
  • 举报
回复
IIS的404 只有在找不到 你跳转页面的时候才会出现 所以 lz应该确认下 你自定义的404页面是否可以访问到 如果能访问到 可以用你自己的404页面地址 把IIS的替换掉
跳动de指尖 2016-04-07
  • 打赏
  • 举报
回复
引用 11 楼 zhuankeshumo 的回复:
[quote=引用 10 楼 pengqian098 的回复:] [quote=引用 6 楼 zhuankeshumo 的回复:] 有robot协议的 自己百度下吧
就好像一个人生病了,治病救人要对症下药, 然而开了一些其他药来掩盖病症,这显然不是好的解决办法。 [/quote]那是你这个实现记录错误日志的方法有问题 mvc 控制器基类不是有异常处理方法 override一下就ok了 Application_Error也行啊[/quote] 实现记录错误日志的方法有什么问题? 这个只是为了我方便查看时候执行了action而已。 而我目前需要解决的问题是, 当状态码不是200的时候,服务器会响应iis默认错误页的html 比如过滤器中:

if (filterContext.HttpContext.Response.StatusCode == 403)
{
	if (filterContext.HttpContext.Request.Url != null)
	{
		if (filterContext.HttpContext.Request.IsAjaxRequest())
		{
			var result = new JsonResult { Data = new BaseModels { IsError = true, ErrMsg = "请先登录!" }, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
			filterContext.Result = result;
		}
		else
		{
			if (filterContext.HttpContext.Request.Url != null)
				filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary
				{
					{ "controller", "home" }, 
					{ "action", "login" }, 
					{ "url", filterContext.HttpContext.Request.Url.ToString() }
				});
		}
	}
}
即使是这样的情况,实际响应的却是iis默认中403.htm的html
newtee 2016-03-15
  • 打赏
  • 举报
回复
引用 10 楼 pengqian098 的回复:
[quote=引用 6 楼 zhuankeshumo 的回复:] 有robot协议的 自己百度下吧
就好像一个人生病了,治病救人要对症下药, 然而开了一些其他药来掩盖病症,这显然不是好的解决办法。 [/quote]那是你这个实现记录错误日志的方法有问题 mvc 控制器基类不是有异常处理方法 override一下就ok了 Application_Error也行啊
跳动de指尖 2016-03-15
  • 打赏
  • 举报
回复
引用 6 楼 zhuankeshumo 的回复:
有robot协议的 自己百度下吧
就好像一个人生病了,治病救人要对症下药, 然而开了一些其他药来掩盖病症,这显然不是好的解决办法。
跳动de指尖 2016-03-15
  • 打赏
  • 举报
回复
引用 6 楼 zhuankeshumo 的回复:
有robot协议的 自己百度下吧
robot当然知道,然而这个并不是解决办法。
跳动de指尖 2016-03-15
  • 打赏
  • 举报
回复
引用 7 楼 myhope88 的回复:
有些错误,本身也不会调用404页面吧
与其他错误无关,错误页配置的是/home/error 404之后,会到homecontroller下的error action,这些都能跟踪到, 但是返回的视图就不是我指定的视图了, 404的时候会显示iis的错误页面
myhope88 2016-03-15
  • 打赏
  • 举报
回复
有些错误,本身也不会调用404页面吧
newtee 2016-03-15
  • 打赏
  • 举报
回复
有robot协议的 自己百度下吧
Poopaye 2016-03-14
  • 打赏
  • 举报
回复
把iis本身的404配置删掉试试
跳动de指尖 2016-03-14
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
确认你的服务器上在home的view目录下有没有error视图,然后将你的StatusCode赋值那块先去掉试试
StatusCode去掉就没问题了, 但是蜘蛛爬到了怎么办。
  • 打赏
  • 举报
回复
确认你的服务器上在home的view目录下有没有error视图,然后将你的StatusCode赋值那块先去掉试试
跳动de指尖 2016-03-14
  • 打赏
  • 举报
回复
引用 4 楼 wyd1520 的回复:
[quote=引用 2 楼 pengqian098 的回复:] [quote=引用 1 楼 starfd 的回复:] 确认你的服务器上在home的view目录下有没有error视图,然后将你的StatusCode赋值那块先去掉试试
StatusCode去掉就没问题了, 但是蜘蛛爬到了怎么办。[/quote] 这跟知蛛有什么关系。。你不想让他爬?[/quote] 当然了,不存在的页面当然不让爬了。
本拉灯 2016-03-14
  • 打赏
  • 举报
回复
引用 2 楼 pengqian098 的回复:
[quote=引用 1 楼 starfd 的回复:] 确认你的服务器上在home的view目录下有没有error视图,然后将你的StatusCode赋值那块先去掉试试
StatusCode去掉就没问题了, 但是蜘蛛爬到了怎么办。[/quote] 这跟知蛛有什么关系。。你不想让他爬?

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧