如何在 ASP.Net 中发送状态代码 500 并仍然写入响应?

2024-02-15

我有一个 ASP.Net 单文件 Web 服务(.ashx文件包含一个IHttpHandler实现)需要能够返回错误作为响应500内部服务器错误状态代码。在 PHP 中这是一件相对简单的事情:

header("HTTP/1.1 500 Internal Server Error");
header("Content-Type: text/plain");
echo "Unable to connect to database on $dbHost";

ASP.Net (C#) 等效项应该是:

Context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
Context.Response.ContentType = "text/plain";
Context.Response.Write("Unable to connect to database on " + dbHost);

当然,这并没有达到预期的效果;相反,IIS 会拦截 500 状态代码,并丢弃我写入的所有内容Response对象,并发送调试信息或自定义错误页面,具体取决于应用程序的配置方式。

我的问题 - 如何抑制这种 IIS 行为并直接从我的服务器发送错误信息IHttpHandler执行?

这个应用程序是 PHP 的移植版;客户端已经写好了,所以我基本上坚持这个规范。遗憾的是,发送带有 200 状态代码的错误并不符合这种模式。

理想情况下,我需要以编程方式控制行为,因为这是我们希望在没有任何“的情况下分发的 SDK 的一部分”编辑这个文件" and "更改此 IIS 设置”补充说明。

Thanks!

Edit: 已排序。Context.Response.TrySkipIisCustomErrors = true就是门票。哇。


Context.Response.TrySkipIisCustomErrors = true

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ASP.Net 中发送状态代码 500 并仍然写入响应? 的相关文章

  • 实体框架中的重复键异常?

    我试图捕获当我将具有给定用户名的现有用户插入数据库时 引发的异常 正如标题所说 我正在使用 EF 当我尝试将用户插入数据库时 引发的唯一异常是 UpdateException 如何提取此异常以识别其是否是重复异常或其他异常 catch Up
  • 可选参数“必须是编译时常量”

    我有一个类分为两个部分文件 如下所示 public partial class PersonRepository BaseRepository
  • 为什么 LinkedList 通常比 List 慢?

    我开始在我的一些 C 算法中使用一些 LinkedList 而不是列表 希望能够加快速度 然而 我注意到他们只是感觉更慢 像任何优秀的开发人员一样 我认为我应该尽职调查并验证我的感受 所以我决定对一些简单的循环进行基准测试 我认为用一些随机
  • C++:获取注册表值仅给出第一个字符[重复]

    这个问题在这里已经有答案了 我试图从注册表中获取字符串值 但我只得到第一个字母 HKEY hKey char gamePath MAX PATH if RegOpenKeyEx HKEY CURRENT USER L Software Bl
  • 使用 QSet 作为 Qt 地图容器中的键

    我需要一个映射 其中键是唯一的 并且每个键都是一组或自定义 POD 结构 其中包含 3 个数据项 这些值只是指向对象实例的指针 从阅读Qt 的 QMap 与 QHash 的文档 http qt project org doc qt 4 8
  • 隐形打开的弹出窗口

    第二天就解决这个问题 要重现 请创建新的 WPF 应用程序 xaml
  • 当我尝试使用 AVX 功能时,Clang 生成错误

    我使用的是 Windows 10 使用 Clang 版本 5 最近安装 当我编译以下内容时 define AVX define AVX2 include
  • 将占位符文本添加到文本框

    我正在寻找一种将占位符文本添加到文本框的方法 就像在 html5 中使用文本框一样 IE 如果文本框没有文本 则会添加文本Enter some text here 当用户单击它时 占位符文本消失并允许用户输入自己的文本 如果文本框失去焦点并
  • C++ 模板参数类型推断

    我有一个这样的C 模板 template
  • IClaimsTransformation 未触发

    我尝试过实施一个IClaimsTransformation我在 ASP NET CORE 3 1 Web 应用程序中找到的类 public class ClaimsTransformer IClaimsTransformation publ
  • ASP.NET Web API Swagger(Swashbuckle)重复OperationId

    I have a web api controller like below In swagger output I am having the below image And when I want to consume it in my
  • 打破条件变量死锁

    我遇到这样的情况 线程 1 正在等待条件变量 A 该变量应该由线程 2 唤醒 现在线程 2 正在等待条件变量 B 该变量应该由线程 1 唤醒 在我使用的场景中条件变量 我无法避免这样的死锁情况 我检测到循环 死锁 并终止死锁参与者的线程之一
  • 如果数组为空,LINQ 返回 null

    public class Stuff public int x other stuff 我有一个IEnumerable
  • 如何使用eclipse构建C++应用程序

    我已经从以下位置下载了 Eclipse Juno for C here http www eclipse org downloads download php file technology epp downloads release ju
  • 停止 TcpListener 的正确方法

    我目前正在使用 TcpListener 来处理传入连接 每个连接都有一个线程用于处理通信 然后关闭该单个连接 代码如下 TcpListener listener new TcpListener IPAddress Any Port Syst
  • 检索 Autofac 容器以解析服务

    在 C WindowForms 应用程序中 我启动一个 OWIN WebApp 它创建另一个类 Erp 的单例实例 public partial class Engine Form const string url http 8080 49
  • 向每个收件人发送一封包含不同内容的电子邮件(使用抄送字段)

    在你因为这个问题 毫无意义 和 不可能 而驳回之前 请听我说完 问题 我们在使用我们的系统发送的每封电子邮件中实施跟踪像素 即具有唯一 URL 的可下载 GIF 文件 这有助于我们跟踪电子邮件的打开情况 问题是 当我们抄送一些收件人时 跟踪
  • Visual Studio 2015默认附加库

    当我在 VS 2015 中创建一个空项目时 它会自动将这些库放入 附加依赖项 中 kernel32 lib user32 lib gdi32 lib winspool lib comdlg32 lib advapi32 lib shell3
  • Crypto++ 和压缩 EC 密钥

    如何在 Crypto 中生成压缩的 ECDSA 密钥 AutoSeededRandomPool prng ECDSA
  • 如何设置 Swashbuckle 与 Microsoft.AspNetCore.Mvc.Versioning

    我们有asp net core webapi 我们添加了Microsoft AspNetCore Mvc Versioning and Swashbuckle拥有招摇的用户界面 我们将控制器指定为 ApiVersion 1 0 Route

随机推荐

  • 用于多行文本的 Java 注释实用程序

    WRT 多行 Java 字符串的任何未来计划 https stackoverflow com questions 11659225 any future plans for multiline java string 编写一个执行以下操作的
  • Python文件下载

    我遇到了问题 不确定这是否可能 所以是否有人可以指出我正确的方向 我需要从网页打开一个文件 在 Excel 中打开它并保存该文件 我在网站上遇到的问题是文件名有一个文件名 不是活动链接 然后它会有一个 下载 按钮 该按钮不特定于我需要下载的
  • 为什么 .tfignore 根本不起作用?

    我按照中的说明进行操作这篇微软文章 https www visualstudio com docs tfvc add files server customize which files are ignored by version con
  • Oracle:将 IPv4 地址转换为数字?

    如何将点十进制格式的 IPv4 地址转换为数字 例如 地址39 255 2 51应转换为4026466867 使用 regexp substr 提取地址的四个八位字节 通过将八位位组移回其原始位置来重构该值 正则表达式可能相对昂贵 因此如果
  • 如何在一个EC2实例上运行多个应用程序?

    这可能与这个问题有关 如何在一个 EC2 实例上运行多个应用程序 https stackoverflow com questions 16549026 how to run more than one app on one instance
  • Gradle 包装器标签不匹配错误

    我正在尝试使用 gradle 及其包装器手动配置 Android 项目 但我总是遇到相同的错误 我可以生成gradlew脚本如下build gadle file buildscript repositories jcenter depend
  • sqlite3 运行 sql - 选择所有带有 PUA 字符的

    我怎样才能运行 SELECT FROM 表名 其中列包含 PUA 字符 PUA https en wikipedia org wiki Private Use Areas 私人使用区域 在 Unicode 中 专用区域 PUA 是一系列代码
  • 在AngularJS中如何使用datalist

    div div
  • 使 tkinter 窗口在全屏应用程序之上绘制

    我想知道是否有一种方法可以在全屏应用程序上绘制 tkinter 窗口 到目前为止我有这个 from tkinter import MAIN WINDOW root Tk root title Test Title root geometry
  • 如何将输出分配给 shell 脚本变量?

    如何将此结果分配给 shell 变量 Input echo 1 1 bc l Output 2 Attempts 没用 bin sh a echo 1 1 bc l echo a 您正在寻找称为命令替换的 shell 功能 cmd 替换有
  • jarsigner“只能指定一个别名”

    C Program Files Java jdk1 7 0 01 bin gt jarsigner verbose sigalg MD5withRSA digestalg SHA1 keystore Cartoons keystore Ca
  • Git如何进行分布式源代码管理?

    我是一位具有 UNIX SCCS 和 Microsoft Visual SourceSafe 经验的 Git 新手 我刚刚学习 Git 它似乎有一个巨大而痛苦的学习曲线 我已经看到 Git 删除了所有我未提交的数据文件 这让我很担心 实用程
  • 获取多个日期时间对的日期范围

    给定一个形状的日期时间数组 n 2 x np array 2017 10 02T00 00 00 000000000 2017 10 12T00 00 00 000000000 dtype datetime64 ns x有形状 1 2 但实
  • 如何在批处理文件中获取当前CPU使用率和可用内存?

    我正在创建一个简单的脚本 输出当前登录的用户 当前系统的 CPU 使用率和可用内存 我已经设法让当前用户登录 但是否也可以获得 cpu 使用率和内存 这是我到目前为止的代码 echo off for f tokens 3 delims i
  • JSON 和 SOAP WCF 服务?

    我最近将 WCF SOAP 服务转换为 REST JSON 服务 正如回复中详细说明的here https stackoverflow com questions 10232509 can i generate a service refe
  • 如何在 NHibernate 中为页面过滤器执行 SELECT DISTINCT 等效操作?

    假设您正在使用 SQL 2005 并安装了 Northwind 数据库的副本 您正在使用带有员工 浏览 页面的 ASP NET 应用程序 在页面顶部有一个 标题 过滤器 您希望在下拉列表中显示这 5 个选项 ALL 销售副总裁销售代表销售经
  • jQuery Masonry 和 Ajax 获取附加项目导致图像重叠

    这里使用 Masonry 和 Ajax 在 Wordpress 中附加项目时存在另一个图像重叠问题 第一次附加更多项目时 图像会重叠 但是 重新加载页面时 图像不再重叠 经过一些研究后我意识到这与计算图像的高度有关 从 Masonry 网站
  • Mac 版与 Github 分开安装 Git

    我已经安装了 Mac 版的 Github 我意识到我需要进入命令行来做一些事情 Mac 版 Github 中有一个选项可以安装命令行 所有这一切似乎都是在 usr local bin 中创建一个名为 Github 的别名 该别名指向 Mac
  • 如何使用material-ui框架? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我打算使用 Material UI CSS 框架 http material ui com http material ui com
  • 如何在 ASP.Net 中发送状态代码 500 并仍然写入响应?

    我有一个 ASP Net 单文件 Web 服务 ashx文件包含一个IHttpHandler实现 需要能够返回错误作为响应500内部服务器错误状态代码 在 PHP 中这是一件相对简单的事情 header HTTP 1 1 500 Inter