微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.Net核心会话Cookie部署到Azure时未设置

如何解决.Net核心会话Cookie部署到Azure时未设置

我有一个使用会话cookie跟踪某些数据的asp.net core 3.1应用程序。这在我的开发机上工作得很好,但是在部署到Azure Web应用程序时未设置cookie。我需要做些什么才能使它在Azure中正常工作?

startup.cs中包含以下内容

services.AddSession(options =>
{
    options.Cookie.HttpOnly = true;
    options.Cookie.IsEssential = true;
});
public void Configure(IApplicationBuilder app,IWebHostEnvironment env)
{
    ...
    app.UseSession();
    ...
}

我正在使用以下代码设置Cookie:

session.SetString(_key,value);

我认为需要对配置进行简单的更改,但对于我的一生,我不知道它是什么。

解决方法

据我所知,Azure Web应用将默认使用ARR,您应确保已启用ARR关联。

如果启用了ARR Affinity,则充当负载平衡器的IIS服务器将在响应上放置cookie,这将导致用户始终在其会话中命中同一实例。这对传统应用程序兼容性很有好处,因为它们可能在设计时就没有考虑负载平衡。

您可以打开Azure Web应用程序服务并找到配置->常规设置->启用ARR关联性。

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。