Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以编程方式从ASP.NET代码隐藏服务HTTP404并重定向到404页面?

如何以编程方式从ASP.NET代码隐藏服务HTTP404并重定向到404页面?
EN

Stack Overflow用户
提问于 2012-07-19 21:09:26
回答 2查看 3.4K关注 0票数 2

我有一个ASP.NET应用程序,如果找不到请求的内容,它有时会重定向到404页面。这是这样做的:

代码语言:javascript
运行
AI代码解释
复制
var data = MyDatabase.RetrieveData(dataID);
if (data == null)
   Response.Redirect("~/My404Page.aspx");

这对用户来说非常有用。但这会导致302 Found (重定向),而不是404 Not Found,这对于搜索爬虫来说并不理想。我希望返回一个404状态代码,并且仍然向用户显示有用的内容。

著名的internet's most awkard 404 page可以做到这一点;如果您在该域中输入了一个错误的URL,并使用诸如Fiddler之类的命令查看结果,那么您实际上会得到一个404代码。

我试过了:

代码语言:javascript
运行
AI代码解释
复制
Response.StatusCode = 404;

这将正确设置404代码,但会继续呈现页面。我也尝试过这个:

代码语言:javascript
运行
AI代码解释
复制
throw new HttpException(404, "Not Found");

但这与处理任何其他未捕获的异常(通过302重定向到服务器错误页面)做的事情是一样的。

我已经想出了一种在我的应用程序中通过一些自定义逻辑来解决这个问题的方法,包括自己设置状态代码和编写一个javascript重定向到响应。但是我想要的是一种用代码隐藏的方式来表达这个请求应该停止处理并重定向到404错误页面(我相信它可以在IIS或web.config中指定)。这个是可能的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-19 21:16:13

如果你不想要302重定向,你需要做Server.Transfer而不是Repsonse.Redirect。Response.Redirect()向浏览器返回一个响应,告诉它加载~/My404Page.aspx。Server.Transfer()将控制权转移到~/My404Page.aspx而不返回浏览器,这意味着您的浏览器不会收到302重定向消息。

您还需要确保将404页面上的Response.StatusCode属性设置为404。

或者,如果抛出HttpException,您可以通过设置redirectMode property to ResponseRewrite重定向到自定义的404页面,而无需在服务器中执行302。这仅适用于较新版本的ASP.NET。

票数 2
EN

Stack Overflow用户

发布于 2012-07-19 21:15:30

在web应用程序的web.config中使用CustomErrors属性

代码语言:javascript
运行
AI代码解释
复制
<configuration>
  <system.web>
    <customErrors defaultRedirect="GenericError.htm"
                  mode="RemoteOnly">
      <error statusCode="404"
             redirect="My404Page.aspx"/>
    </customErrors>
  </system.web>
</configuration>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11569355

复制
相关文章
如何使用Docker Compose在容器内运行Linux命令?
Docker Compose 是一个用于定义和运行多容器Docker应用程序的工具。除了可以启动应用程序的多个容器之外,Docker Compose还提供了一种在容器内部执行命令的方式。在本文中,我们将详细介绍如何使用Docker Compose在容器内运行Linux命令,并展示一些常见的应用场景。
网络技术联盟站
2023/06/08
3.2K0
如何使用Docker Compose在容器内运行Linux命令?
ClickHouse 如何查询指定时间段内导入的数据
实现ClickHouse 全量和增量的导入和ClickHouse 和迁移ClickHouse
jasong
2021/08/24
5.5K0
ClickHouse 如何查询指定时间段内导入的数据
Oceanus 在腾讯微视数据的实践-统计某时间段内的uv、pv
在实时计算中,经常会遇到需要计算某个时间段内的pv、uv这类需求,完成该类需求有多种方式,本文以微视数据端内计算启动数据的pv、uv为应用场景,来介绍常用的两种实现方式。
吴云涛
2021/10/15
1.9K0
Oceanus 在腾讯微视数据的实践-统计某时间段内的uv、pv
Yarn运行中的任务如何终止?
我们的作业是使用yarn来调度的,那么肯定就需要使用相关的命令来进行管理,简单的有查询任务列表和killed某一个正在运行中的任务。
大数据真好玩
2021/03/30
7.5K0
Yarn运行中的任务如何终止?
ParallelX在GPU上运行Hadoop任务
在面对大规模计算密集型算法时,MapReduce范式的表现并不总是很理想。为了解决其瓶颈,一支小型创业团队构建了名为ParallelX的产品——它将通过利用GPU的运算能力,为Hadoop任务带来显著的提升。 ParallelX的联合创始人Tony Diepenbrock表示,这是一个“GPU编译器,它能够把用户使用Java编写的代码转化为OpenCL,并在亚马逊AWS GPU云上运行”。它的最终产品是一项与亚马逊Elastic MapReduce类似的服务,只不过不同之处在于它将利用EC2 GPU实例类型
GPUS Lady
2018/03/30
1.2K0
.Net Core in Docker - 在容器内编译发布并运行
Docker可以说是现在微服务,DevOps的基础,咱们.Net Core自然也得上Docker。.Net Core发布到Docker容器的教程网上也有不少,但是今天还是想来写一写。 你搜.Net core程序发布到Docker网上一般常见的有两种方案:
MJ.Zhou
2019/07/02
2K0
C#判断一个给定的IP地址是否在指定的范围内
比如给定一个ip段:127.0.0.1 ~ 127.0.0.255,我们想判断一个给定的ip地址是否在此段内,可以先将ip地址转换成整数,然后整数比较大小就很容易了。 例如: 127.0.0.1 = 2130706433 127.0.0.255 = 2130706687 判断: 127.0.1.253 = 2130706941 是否在此范围内,直接比较整数大小即可 将ip地址转换成整数
用户7108768
2021/11/03
1.4K0
ThinkPHP5 (mySQL) 统计各个时间段内的订单量
背景 今天在进行后台数据监控时; 需要对一天24小时的下单量进行时间段的统计; 但是下单时间字段 pay_time 选取的是 timestamp 类型; 此时需要进行时间段的数据分组剥离,在此做一下实现方式,请多指教 … 环境 框架:ThinkPHP5.1.2 系统:nginx/win10 、phpStudy2017 实现方式 1. 首先,考虑到使用的是 group分组技巧; 那么就必须要将 pay_time 中记录的字段数据进行 24时的定位切分; 这里可以用到 substrin
泥豆芽儿 MT
2020/01/13
2.1K0
ThinkPHP5 (mySQL) 统计各个时间段内的订单量
python|输出给定范围内的顺次数
我们定义「顺次数」为:每一位上的数字都比前一位上的数字大 1 的整数。 请你返回由 [low, high] 范围内所有顺次数组成的有序 列表(从小到大排序)
算法与编程之美
2020/02/21
8000
在 Vue 对象模块内如何使用 this 对象?
众所周知,js 中的 this 对象在不同作用域下指代不同的对象实例,并且在以下 4 种场景中经常会“不知所向”:
LIYI
2019/09/02
2.8K0
单路径NAS: 在四小时内设计出给定硬件内最有效的网
这篇paper[Single-Path NAS: Designing Hardware-Efficient ConvNets in less than 4 Hours]是2019年4月在arxiv上的新文章,来自CMU、微软和哈工大,论文提出了Single-Path NAS,将搜索时间从200 GPU时降低至4 GPU时,同时在ImageNet上达到了74.96% top-1的准确率。
小白学视觉
2022/09/28
3970
防火墙(9)——禁止某个时间段内访问我们的web
首先我们要准备一台linux虚拟机。 随后我们要在我们的虚拟机上安装apache服务:yum install httpd -y 随后可以curl以下我们的主机看是否能够访问:
gzq大数据
2020/11/11
1.2K0
防火墙(9)——禁止某个时间段内访问我们的web
YARN任务运行中的Token
上一篇文章中,主要讲解了token的一些通用知识,以及hadoop中,token的实现和通用数据结构及流程。
陈猿解码
2023/02/28
8870
YARN任务运行中的Token
Hadoop 任务运行失败
任务运行失败最常见的情况是 map 任务或 reduce 任务中的用户代码抛出运行异常。如果发生这种情况,任务 JVM 会在退出之前向其父 application master 发送错误报错。错误报告最后被记入用户日志中。application master 会将此次任务尝试标记为 failed (失败),并释放容器以便资源可以为其他任务使用。
smartsi
2019/08/07
3K0
用oozie命令行的方式在yarn上运行spark任务
本文介绍了如何使用oozie命令行的方式在yarn上运行spark任务,包括准备环境、上传jar包、配置job.properties和workflow.xml文件、执行命令、查看oozie和yarn的界面、查看yarn的日志文件等步骤。
用户1171305
2017/12/28
2.4K0
用oozie命令行的方式在yarn上运行spark任务
Python定时计划任务探究,如何实现到点运行py任务脚本
不少大佬哥应该有着这样一个应用场景,即到点跪舔女神,给女大佬问好,带早餐,备胎计划??而在实际网络中,也有着不少定时定点计划任务需要运行,这在运维当中非常常见,也非常重要!身为技术渣想要实现到点运行py任务脚本,比如说每天某个时间点准时运行爬取91新片以及精彩评论,兴趣让渣渣有研究的动力,这就有了下面这篇水文!!
二爷
2021/10/11
2.1K0
点击加载更多

相似问题

如何使用ScheduledExecutorService在特定时间段内运行任务?

144

使用datetime运行给定时间段内的事件计数

20

如何在给定的时间段内运行线程,然后在Java中返回?

10

检索给定时间段内的数据

05

比较给定时间段内的日期

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档