发送 HTTP 标头后,服务器无法修改 cookie

2024-01-11

我正在用 C# 创建一个 Web 应用程序。

当我的页面加载时,我会触发一个异步线程来处理一些数据。此处理的一部分是更新 cookie。但是,当我将 cookie 保存到响应中时

System.Web.HttpContext.Current.Response.Cookies.Add(cookie),我得到以下异常:

HttpException: Server cannot modify cookies after HTTP headers have been sent.

有什么办法可以解决或解决这个问题吗?


除非有充分的理由,否则不应在 ASP.NET 请求中启动后台工作线程。最终,您仍然必须等待该线程完成其工作,然后才能将响应发送回浏览器。

听起来响应流已经部分写入,然后您的线程正在尝试添加 cookie。

我会在这里重新考虑您的策略并阅读以下指南:

第 6 章 — 提高 ASP.NET 性能 - 线程指南 http://msdn.microsoft.com/en-us/library/ff647787.aspx#scalenetchapt06_topic9

它看起来像是一份过时的文件,但原则仍然有效。如果调用数据处理器的原因是为了防止 ASP.NET 工作线程由于数据处理器长时间运行而阻塞并耗尽资源,那么请考虑将该页面设为异步页面 http://msdn.microsoft.com/en-gb/magazine/cc163725.aspx反而。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

发送 HTTP 标头后,服务器无法修改 cookie 的相关文章

随机推荐