我正在开发一个Azure应用程序,它有一个开发,一个分期,还有一个蓝绿色插槽。认证由Azure AD处理,用户被重定向到微软在线登录页面。昨天,我下载了每个时隙的发布配置文件,并发布了这三个文件。我在多台计算机和浏览器上测试了它们,所有三个插槽都正常工作。
今天早上,我再次测试了它们,只有开发槽才能工作。暂存和蓝绿色都重定向到登录页面,但是一旦经过验证,可怕的无限重定向循环就会接管。
站点需要SSL,但这似乎与问题无关。当插槽工作时,通过HTTP或HTTPS都可以正确地重定向到HTTPS。
应答URL也都设置好了,似乎与问题无关。
我不知道下一步该看什么。是否有定期运行的Azure进程可能影响插槽?为什么一个插槽要工作几个小时,然后停止工作?
循环:(向app-slot.azurewebsites.net发送请求,=>等待app-slot.azurewebsites.net,=>等待login.microsoftonline.com =>,将请求发送到app-slot.azurewebsites.net),依此类推。
发布于 2017-04-24 15:34:32
事实证明,这一问题是由微软自己的System.Web实现中的一个半著名的bug引起的: Katana Bug #197。甚至还有一个nuget包,其唯一的目的是提供一个解决办法,直到bug被修复。截至2017年4月,nuget软件包已被下载96,000次。

来自readme.md的Kentor.OwinCookieSaver nuget包:
“臭虫会让奥林设定的曲奇在某些场合神秘消失。”
解决办法很简单。添加nuget包Kentor.OwinCookieSaver,然后在cookie处理中间件之前添加KentorOwinCookieSaver中间件。
添加以下内容:
app.UseKentorOwinCookieSaver();在此之前:
app.UseCookieAuthentication(new CookieAuthenticationOptions());如果您想阅读更多内容,下面是一些有用的链接:Owin Cookie Saver Repo、Katana项目Bug #197
https://stackoverflow.com/questions/43142790
复制相似问题