我有 C# n 层应用程序。通常我们使用 Forms 身份验证并且一切正常,但是当我们尝试在 Windows 上设置身份验证时,它开始在某些情况下抛出以下异常(主要是在管理中,例如当您尝试编辑用户和客户端调用服务器以获取用户详细信息时)这根本不会在 Internet Explorer 中发生。在 Firefox 和 Chrome 中它每次都会抛出它。
System.Web.HttpException (0x80004005):
Server cannot set status after HTTP headers have been sent.
at System.Web.HttpResponse.set_StatusCode(Int32 value)
at System.Web.HttpResponseWrapper.set_StatusCode(Int32 value)
at System.Web.Mvc.HttpStatusCodeResult.ExecuteResult(ControllerContext context)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
请问,您能否给我一些建议,哪些地方可能会出错,以及如何解决? 谢谢
最佳答案
那么,您必须查看您的代码并查看将内容写入输出流的位置。发生的事情是在您设置状态代码之前写出一些东西,而 ASP.NET 不允许这样做。
至于为什么它会发生在 FF 和 Chrome 上,您是否有任何代码试图识别它是哪个浏览器并向不同的浏览器发送不同的东西?
关于c# - 发送 HTTP header 后,Windows Auth Server 无法设置状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12783151/