【问题标题】:Windows Auth Server cannot set status after HTTP headers have been sent发送 HTTP 标头后,Windows Auth Server 无法设置状态
【发布时间】:2012-09-28 18:54:38
【问题描述】:

我有 C# n 层应用程序。通常我们使用表单身份验证并且一切正常,但是当我们尝试在 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)

拜托,你能给我一些建议,什么地方可能出错以及如何解决它? 谢谢

【问题讨论】:

    标签: c# windows authentication http-headers httpexception


    【解决方案1】:

    好吧,您必须查看您的代码并查看将内容写入输出流的位置。发生的事情是在您设置状态代码之前写出一些东西,而 ASP.NET 不允许这样做。

    至于为什么会在 FF 和 Chrome 上发生这种情况,你有没有任何代码可以尝试识别它是哪个浏览器并将不同的内容发送到不同的浏览器?

    【讨论】:

    • 是的,没有看到任何可能导致该错误的东西,这是我首先做的。我在想,如果出现问题,即使身份验证设置为表单也不应该是错误的吗?不,我只在 javascript UI 中对不同的浏览器做不同的事情。
    猜你喜欢
    • 2014-01-27
    • 1970-01-01
    • 2011-01-23
    • 2015-11-07
    • 1970-01-01
    • 2019-07-22
    • 2016-08-27
    • 2015-06-24
    • 1970-01-01
    相关资源
    最近更新 更多