gpt4 book ai didi

c# - Azure Web 应用程序偶尔抛出 CryptographicException : Keyset does not exist

转载 作者:行者123 更新时间:2023-12-04 15:41:06 24 4
gpt4 key购买 nike

我有一个托管在 Azure 上的 Identity Server Web 应用。它的根目录中有一个用于签名的 .pfx 文件。问题是,当新发布时它工作得很好,但一段时间后它开始抛出CryptographicException:Keyset不存在。

基于CryptographicException KeySet does not exists我认为这是一个文件访问问题,但为什么突然 azure 搞乱了文件访问。

最佳答案

我偶尔会遇到同样的异常。就我而言,这是由于我在部署槽之间交换时数据保护 key 发生变化造成的。使用时services.AddDataProtection()使用默认配置并在 Azure 应用服务上托管应用程序,数据保护 key 存储在 %HOME%\ASP.NET\DataProtection-keys 中。此目录由网络共享支持,以确保 key 在您的所有应用实例上可用,但是部署槽的情况并非如此。因此,当您从一个部署槽切换到另一个部署槽时, key 将会更改,您将看到 CryptographicException: Keyset does not exist当您的应用尝试取消对有效负载的保护时。

为了确保您的应用始终使用相同的 key ,您需要配置不同的 key 存储提供程序。 IE。使用 Redis 或 Azure Blob 存储作为后备存储。

您可以在 official documentation 中找到有关如何配置此功能的更多信息。 .

我还在 my blog 上描述了我遇到的问题.

关于c# - Azure Web 应用程序偶尔抛出 CryptographicException : Keyset does not exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39514316/

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