2014-12-01 4 views
1

우리는 기존의 webforms 페이지가있는 ASP.NET MVC 사이트를 가지고 있습니다. 최근이 페이지에 대한 몇 가지 안타 로그에 다음과 같은 오류로 종료 : HTTP 헤더를 보낸 후에 ASP.NET 서버에서 쿠키를 수정할 수 없습니다.

System.Web.HttpException (0x80004005): Server cannot modify cookies after HTTP headers have been sent. 
at System.Web.HttpCookieCollection.Add(HttpCookie cookie) 
at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

은 분명히 스택 추적은 사용자 코드가 포함되어 있지 않습니다.

오류를 재현하지 못했습니다. 이 오류는 GET, POST 및 다른 사용자 에이전트에서 발생합니다.

Response.BufferResponse.BufferOutputtrue으로 설정됩니다.

+0

어떤 페이지에서 이런 일이 발생합니까? 무작위로 모든 페이지 또는 특정 페이지에 있습니까? –

+0

@ Mihai-AndreiDinculescu 몇 가지 나머지 webforms 페이지. – v0id

+0

오류는 아주 자명합니다. 웹 양식 페이지는 MVC 파이프 라인에서 동의하지 않은 양식으로 쿠키를 작성해야합니다. 더 많은 코드를 제시하지 않으면 도움을 줄 수 없습니다. –

답변

0

오류는 아주 자명합니다. 코드가 응답을 설정 한 후에 쿠키를 추가/수정하려고합니다.

코드를 살펴보고 쿠키를 작성하는 섹션을 확인해야합니다.

코드가 처음 보인 것처럼 보이더라도 쿠키를 쓰기 전에 async 콘텐츠가로드되어 있지 않은지 확인하십시오.

귀하의 게시물은이 오류가 무작위로 발생하므로 대부분 async과 관련된 문제라고 제안합니다. 경주 상황입니다. async은 쿠키 생성 전에 완료되지만 다른 경우에는 그렇지 않으므로 무작위 오류가 발생합니다.

+1

사이트가 .NET 4 및 ASP.NET MVC 3에서 실행 중이므로 비동기 코드가 없습니다. – v0id

+0

이렇게하면 문제가 크게 단순 해집니다. 응답을 보낸 후에 코드가 쿠키를 쓰지 않는지 확인하면됩니다. –

관련 문제