【问题标题】:Blazor WASM different behaviour in production environment and local/dev [duplicate]Blazor WASM 在生产环境和本地/开发中的不同行为 [重复]
【发布时间】:2021-04-05 17:32:31
【问题描述】:

在 Blazor(使用 .NET 5)中使用 XML 验证时,如果生成错误,则在本地开发环境(调试或发布模式)中按预期报告错误消息,但在生产环境(即发布到静态 blob - 没有 ASP.NET 服务器)

在下面的代码中,我故意生成一个错误来说明问题。

    protected override async Task OnAfterRenderAsync(bool firstRender)
    {
        var xml = "I am not XML";

        // Create the XmlReader object from the string
        using (var reader = XmlReader.Create(new XmlTextReader(new StringReader(xml)), new XmlReaderSettings
        {
            ValidationFlags = XmlSchemaValidationFlags.ReportValidationWarnings
        }))
        {
            try
            {
                while (reader.Read()) ;
            }
            catch (XmlException exception)
            {
                Console.WriteLine (exception.Message);
            }
        }

预期的错误信息是:

根级别的数据无效。第 1 行,位置 1。

但是,在已发布/生产环境中,这是:

Xml_MessageWithErrorPosition, Xml_InvalidRootData, 1, 1

我猜测这些 Xml_ 引用是在已发布环境中不可用的内部 Microsoft 字符串引用,并且 Blazor 不包含这些以保持下载的轻松,但我想知道:

为什么这里有不同的行为?如何在本地重现已发布的环境行为? 是否可以部署显示这些错误消息所需的模块。我如何识别这些是什么并确保它们被部署?

【问题讨论】:

    标签: blazor blazor-webassembly blazor-client-side


    【解决方案1】:
    <UseSystemResourceKeys>false</UseSystemResourceKeys> 
    

    问题在https://github.com/dotnet/runtime/issues/49308进行了解释

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-12
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 2021-09-27
      • 2018-06-04
      • 2017-12-20
      相关资源
      最近更新 更多