blazor - Blazor WASM 在生产环境和本地/开发中的不同行为
问题描述
在 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 不包含这些以保持下载轻,但我想知道:
为什么这里有不同的行为?如何在本地重现已发布的环境行为?是否可以部署显示这些错误消息所需的模块。我如何识别这些是什么并确保它们被部署?
解决方案
<UseSystemResourceKeys>false</UseSystemResourceKeys>
推荐阅读
- python - 如何去除不需要的字符和字符串?
- java - 获取表格元素的旧值,如何获取新值?
- jquery - 确认对话框后显示打印窗口
- unity3d-shaders - 为什么我的着色器在一些安卓设备上坏了一半?
- xamarin.forms - 加载我的页面时未满足条件“klass”
- c# - 如何在 C# 中使用公钥和私钥创建 RSA xmlstring
- c# - 如何验证文件是否已下载到 windowsd 10 的我的下载目录中?
- apache-kafka - 当消费者缓慢时,Kafka 持续重新平衡
- c - C - 字符长度超过 255 - SIGSEGV 错误
- python - 将不同的参数传递给 python 中的 ThreadPool.apply_async() 方法