薩穆埃爾的答覆只是解決了這個問題對我來說(+1)。我不能粘貼在註釋代碼示例,但在幫助他人的利益,這裏是我如何使用他建議到HeadersWritten屬性添加到我的IHttpHandler事件:
protected bool HeadersWritten { get; private set; }
void ApplicationInstance_BeginRequest(object sender, EventArgs e)
{
HeadersWritten = false;
}
void ApplicationInstance_PreSendRequestHeaders(object sender, EventArgs e)
{
HeadersWritten = true;
}
public void ProcessRequest(HttpContextBase context)
{
context.ApplicationInstance.PreSendRequestHeaders += new EventHandler(ApplicationInstance_PreSendRequestHeaders);
do_some_stuff();
}
在我的代碼,將打破如果我惹頭太晚了,我只是檢查HeadersWritten財產第一:
if (!HeadersWritten)
{
Context.Response.StatusDescription = get_custom_description(Context.Response.StatusCode);
}
響應緩衝('Response.Buffer' - 你想要這個on)和響應法拉盛('Response.Flush()' - 你不不想這樣做)是兩個明顯的候選人。 – bzlm 2010-03-04 19:27:29