gpt4 book ai didi

c# - asp.net 核心数据保护 : An exception was thrown while deserializing the token

转载 作者:行者123 更新时间:2023-11-30 12:39:52 25 4
gpt4 key购买 nike

我在使用 Redis 作为数据保护存储的网络场上运行 asp.net 核心。

我的应用程序负载很重,所以我不断从 redis 收到以下错误:

Timeout performing EVAL, inst: 9, queue: 1448, qu: 0, qs: 1448, qc: 0, wr: 0, wq: 0, in: 65536, ar: 0, clientName: xxxx

redis 在 startup.cs 中使用 microsoft recommendation 初始化的方式是

var redis = ConnectionMultiplexer.Connect("<URI>");
services.AddDataProtection()
.PersistKeysToRedis(redis, "DataProtection-Keys");

所以在阅读了一些关于 redis 不是线程安全的文章后,我按照 azure 中的建议将 redis 初始化更改为线程安全的和 here

private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() => {
return ConnectionMultiplexer.Connect("mycache.redis.cache.windows.net,abortConnect=false,ssl=true,password=...");
});

public static ConnectionMultiplexer Connection {
get {
return lazyConnection.Value;
}
}

但现在的问题是我每隔一秒左右就会收到以下错误:

The antiforgery token could not be decrypted. ---> System.Security.Cryptography.CryptographicException: The key {xxxxxxx} was not found in the key ring.

An exception was thrown while deserializing the token.

Error unprotecting the session cookie.

System.Security.Cryptography.CryptographicException: The key {xxxxx} was not found in the key ring.

有什么问题,我该怎么办?

我应该再次更改初始化吗?但随后应用程序将在重负载下停止。

已更新

更多信息:

我不小心为 redis 使用了错误的连接字符串,并再次将其更改为正确的连接字符串。

当然可能还有其他错误导致此错误。

我现在如何处理和缓解此错误?

错误很明显,可能无法在另一个开发环境中重现。

但是应该有一种方法来处理这种错误。

最佳答案

要避免数据保护错误,您可以运行 PowerShell 脚本。 https://raw.githubusercontent.com/aspnet/DataProtection/dev/Provision-AutoGenKeys.ps1 .您只需要以管理员身份运行脚本并提供应用程序池名称

关于c# - asp.net 核心数据保护 : An exception was thrown while deserializing the token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43702297/

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