【问题标题】:ASP.NET Resx Resource randomly giving null reference exceptionASP.NET Resx Resource 随机给出空引用异常
【发布时间】:2017-07-08 22:28:01
【问题描述】:

我正在查看我为其开发的站点的错误日志,页面中的某行不时地非常随机地给出空引用异常。例如随机性,它可能每 100 次点击返回一次或两次 null。
这是一行:

@Resources.Global.ThankYou

这里是资源文件夹的结构(资源文件夹位于web项目文件夹的根目录):

我与错误交谈的用户似乎都在英文操作系统上,并且我检查的日志中的所有错误在他们传递的 HTTP 请求属性中都有这种相似性:

HTTP_ACCEPT_LANGUAGE:en-au

大多数但并非所有遇到此问题的用户似乎都在使用 iphone 或 ipad(也有一些 android)。 为了尝试复制问题,我将英语-澳大利亚语推到了我的语言列表的顶部并测试了完全相同的页面,但它工作正常 - 就像其他 98% 的用户一样,并选择了默认的 Global.resx谢谢你的价值是英文的。

有没有人知道一些用户如何获得随机空引用异常?我将非常感谢任何反馈!

【问题讨论】:

  • 这是非常奇怪的行为。我唯一会做的不同并且能想到的事情就是不要称它为Global,因为这是C#中的一个关键字。它可能会在某处引起一些混乱。这只是一个长镜头,我可能只是在说垃圾。
  • 嗨@CodingYoshi,我原以为在资源命名空间中会没问题,但是我很绝望,所以我会尝试重命名它 - 非常感谢您的反馈!
  • 你是对的,应该没问题,但我也很绝望,这就是我能想到的 ;)
  • 哪一行抛出异常?
  • 嗨@mjwills 这是行:Resources.Global.ThankYou

标签: c# asp.net localization globalization


【解决方案1】:

如果这对任何人都有帮助,那么它最终会成为 ASP.NET 的一个误导性异常。该错误实际上发生在以下行中,其中模型的属性在某些情况下为空。 ASP.NET 错误地声明它在资源上。这是我能够复制的示例:

错误实际上是在 2 行后圈出的属性上,而不是在 asp.net 建议的行上。我希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    • 2019-08-04
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    • 2016-08-17
    相关资源
    最近更新 更多