我正在尝试通过执行以下操作来设置HttpResponse的响应主体:
response.Output.Write("Message Body"); //(Ive also tried just response.Write())
但是,当我跟踪我的回复时,响应正文不包含此消息。但是,在执行这些步骤之前,我通过执行以下操作设置对错误请求的响应:
response.StatusCode = (int)HttpStatusCode.BadRequest;
哪个反映得当。响应正文被设置为默认的“错误请求”
答案 0 :(得分:1)
在没有看到您的配置或代码的情况下,我认为您的问题与名为existingResponse
的IIS设置有关,该设置存在于web.config中:
<system.webServer>
<httpErrors existingResponse="PassThrough"></httpErrors>
</system.webServer>
existingResponse
有三个潜在值,它们是:
我相信Replace
就是你想要的,以便发送自定义错误消息和HTTP状态代码。
答案 1 :(得分:1)
除了Karl的回答,我们还可以设置标志
context.Response.TrySkipIisCustomErrors = true;
答案 2 :(得分:0)
一个选项是抛出throw new WebFaultException("Invalid request.", HttpStatusCode.BadRequest)
;