我有一个 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(使用前将#替换为@)