【问题标题】:Azure, MVC Core Web App suddenly throw "XmlException: Root element is missing" + "CryptographicException"Azure、MVC Core Web App 突然抛出“XmlException: Root element is missing”+“CryptographicException”
【发布时间】:2019-12-04 21:35:10
【问题描述】:

我有一个由 Azure 应用服务托管的 Web 应用程序。它多年来一直运行良好,但是当我尝试输入帐户/登录操作时突然出现异常: -->“XmlException:缺少根元素”+“CryptographicException:尝试加密提供的数据时出错。”。 如果我进入 Home/About 操作(具有[AllowAnonymous] 属性),该页面可以正常工作。 但是,如果我尝试在具有[AllowAnonymous] 属性的帐户控制器中输入一个页面。这也会抛出相同的异常。所以我猜测异常发生在 Account 控制器的构造函数中。见下文。

我已经有几个月没有对页面进行任何更新了,到目前为止它运行良好。 如果我在我的 PC 上本地运行应用程序(连接到 azure 上的同一数据库),它工作正常。 据我了解,Azure 最近对其门户进行了更新。 我的猜测是错误的原因与此有关。

有人知道怎么解决吗?

public AccountController(
        UserManager<ApplicationUser> userManager,
        SignInManager<ApplicationUser> signInManager,
        IEmailSender emailSender,
        ILogger<AccountController> logger,
        ApplicationDbContext context)
    {
        _userManager = userManager;
        _signInManager = signInManager;
        _emailSender = emailSender;
        _logger = logger;
        _context = context;
    }

【问题讨论】:

  • 我不认为是 AccountController。异常的堆栈跟踪是什么?
  • @RyanHill-MSFT Maby 你是对的。堆栈太长,无法粘贴到这里。但是如果你去页面link你会看到它。
  • @FredrikLing 查看堆栈跟踪,看起来您在登录页面(在标记或代码隐藏本身)上使用了引用数据保护的防伪标签助手。您是如何在 Startup.cs 中配置数据保护的?另外,您使用的是什么 AspNetCore 版本?您的问题与github.com/aspnet/AspNetCore/issues/4167 非常相似。
  • @RyanHill-MSFT 是的,您似乎走在了正确的轨道上。我找到了问题的原因并解决了它。请参阅下面的答案。感谢您的努力!

标签: azure asp.net-core asp.net-core-mvc azure-web-app-service xmlexception


【解决方案1】:

好的,我自己发现了问题。在深入研究 Azure 中可用的调试快照后,我得到一个提示,即应用程序试图获取导致异常的 xml 的目录是“D:\home\ASP.NET\DataProtection-Keys”。当我分析该目录的内容时,我发现一个 xml 文件是空的。我删除了那个文件。这解决了问题。

【讨论】:

    猜你喜欢
    • 2021-02-27
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    • 2019-05-01
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    相关资源
    最近更新 更多