【发布时间】:2016-03-23 01:09:58
【问题描述】:
我在 webfarm 场景(具有多个 AppServer 的 ARR 前端)中运行 MVC 6 (vNext)。服务器关联性已关闭。
当我在应用服务器之间从一个请求跳转到另一个请求时,我收到了错误
CryptographicException:在密钥环中找不到密钥 {3275ccad-973d-43ca-930f-fbac4d276640}。
InvalidOperationException:无法解密防伪令牌。
以前,我相信这是通过在 web.config 中设置静态 MachineKey 来处理的。
据我了解,我们现在已经转移到新的 DataProtection API,我尝试了以下方法,认为应用程序名称被用作某种种子:
services.AddDataProtection();
services.ConfigureDataProtection(configure =>
{
configure.SetApplicationName("WebAppName");
});
这并不能解决问题。
知道如何在 vNext 中解决这个问题吗?
【问题讨论】:
-
除了接受的答案之外,现在很容易在 Redis 上持久保存数据保护密钥,这在 Web Farm 场景中运行良好。见tugberkugurlu.com/archive/…。
标签: asp.net-mvc iis asp.net-core asp.net-core-mvc