发送HTTP标头后,服务器无法设置内容类型 - 跟踪此情况

Whi*_*uit 5 asp.net http

我们的一位用户在我们的网络应用程序中收到错误.我们无法复制这个问题,我怀疑它与网络有关.我让用户在他们的办公室和家中使用他们的笔记本试用应用程序,并确认问题只发生在他们的办公室.

我登录服务器并在他们办公室试用后立即查看了事件查看器,并在日志中显示以下警告.

我对如何开始追踪这个问题感到茫然.有什么建议?

事件查看器日志如下:

事件代码:3005事件消息:发生了未处理的异常.活动时间:6/20/2012 6:32:45 PM活动时间(UTC):6/20/2012 10:32:45 PM活动编号:ebf8f628a9b3457cbea117c8c2da2186活动顺序:2970活动结果:26活动详情代码:0申请信息:

Application domain: /LM/W3SVC/50/ROOT-1-129847041933281152 
Trust level: Full 
Application Virtual Path: / 
Application Path: c:\websites\foobar.acme.com\ 
Machine name: MyServer    Process information: 
Process ID: 15152 
Process name: w3wp.exe 
Account name: NT AUTHORITY\NETWORK SERVICE    Exception information: 
Exception type: HttpException 
Exception message: Server cannot set content type after HTTP headers have been sent.    Request information: 
Request URL: http://foobar.acme.com/Project/Evaluate/ResultsXML.aspx?step=89&uid=4397&rnd=hhf8oe

Request path: /Project/Evaluate/ResultsXML.aspx 
User host address: 192.168.102.1 
User:  
Is authenticated: False 
Authentication Type:  
Thread account name: NT AUTHORITY\NETWORK SERVICE    Thread information: 
Thread ID: 12 
Thread account name: NT AUTHORITY\NETWORK SERVICE 
Is impersonating: False 
Stack trace:    at System.Web.HttpResponse.set_ContentType(String value)    at System.Web.UI.Page.SetIntrinsics(HttpContext context,
Boolean allowAsync)    at
System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)   
at System.Web.UI.Page.ProcessRequest(HttpContext context)    at
ASP.error_aspx.ProcessRequest(HttpContext context)    at
System.Web.HttpServerUtility.ExecuteInternal(IHttpHandler handler,
TextWriter writer, Boolean preserveForm, Boolean setPreviousPage,
VirtualPath path, VirtualPath filePath, String physPath, Exception
error, String queryStringOverride)
Custom event details:
Run Code Online (Sandbox Code Playgroud)

Joh*_* Wu 0

可能与集成模式与经典管道模式有关。比较您的两个环境并确保它们在这方面没有差异。

IIRC 在集成管道模式下,您可以在写入标头后重置或删除标头;在经典模式下你不能。

如果您不知道其中的区别,请查看这篇文章。