gpt4 book ai didi

c# - HTTPS 重定向导致错误 "Server cannot append header after HTTP headers have been sent"

转载 作者:可可西里 更新时间:2023-11-01 16:05:56 24 4
gpt4 key购买 nike

我需要检查我们的访问者是否使用 HTTPS。在 BasePage 中,我检查请求是否来自 HTTPS。如果不是,我将使用 HTTPS 重定向回来。但是,当有人访问该站点并使用此功能时,我收到错误消息:

System.Web.HttpException: Server cannot append header after HTTP headers have been sent. at System.Web.HttpResponse.AppendHeader(String name, String value) at System.Web.HttpResponse.AddHeader(String name, String value) at Premier.Payment.Website.Generic.BasePage..ctor()

这是我开始时使用的代码:

// If page not currently SSL
if (HttpContext.Current.Request.ServerVariables["HTTPS"].Equals("off"))
{
// If SSL is required
if (GetConfigSetting("SSLRequired").ToUpper().Equals("TRUE"))
{
string redi = "https://" +
HttpContext.Current.Request.ServerVariables["SERVER_NAME"].ToString() +
HttpContext.Current.Request.ServerVariables["SCRIPT_NAME"].ToString() +
"?" + HttpContext.Current.Request.ServerVariables["QUERY_STRING"].ToString();
HttpContext.Current.Response.Redirect(redi.ToString());
}
}

我也尝试在它上面添加这个(有点我在另一个网站上使用过类似的问题):

// Wait until page is copletely loaded before sending anything since we re-build
HttpContext.Current.Response.BufferOutput = true;

我在 IIS 6 上的 .NET 3.5 中使用 c#。

最佳答案

乍得,您是否尝试在重定向时结束输出?还有第二个参数,您可以将其设置为 true 以告诉输出在发出重定向 header 时停止。或者,如果您正在缓冲输出,那么您可能需要在执行重定向之前清除缓冲区,这样 header 就不会与重定向 header 一起发送。

布莱恩

关于c# - HTTPS 重定向导致错误 "Server cannot append header after HTTP headers have been sent",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2913621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com