首页 > 解决方案 > blazor 后端模型异常只显示 null?

问题描述

我主要是一名桌面开发人员,我对 Blazor 的兴趣达到了顶峰。在玩了主要示例之后,我想我基于它创建了一个 Blazor 客户端应用程序。但是我现在突然遇到一些奇怪的异常和表达式调试评估行为?

我创建了一个测试 Blazor Web Assembly 应用程序,它使用 VS2019 通过 Dapper 使用简单的 Sql 调用访问数据库。该对象是作为呈现页面的控件的一部分创建的。

页面通过每 1 秒触发一次计时器自动刷新。它工作正常。直到我调用 SqlConnection create 方法,该方法失败并出现错误,因为连接字符串格式不正确。

        public bool DoTestSql(string sqlConn, string sqlCom)
        {
            SqlConnection conn = null;
            bool bok = false;
            try
            {
                //this works
                throw new Exception("Test Exception");

                //this produces an Exception object but its very strange and is null???

                conn = new SqlConnection(sqlConn);

                //as a side node, going into immediate mode and typing ?sqlConn.subString(1) shows cannot be evaluated?
                //?ex.ToString() shows "unable to evaluate"
                bok = true;
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.ToString());
            }

            return bok;

        }

当 catch 被捕获时(在同一个函数中),它在 Exception 对象中显示的很少。将异常打印到控制台显示“无法评估”。事实上,尝试在该函数中输出任何变量也是如此。

一旦连接字符串正确,我会看到“无法评估儿童”的异常?

异常和评估发生了什么?有没有办法解决这个问题?

编辑:我在 MainLayout.razor @code 部分中插入了一个 Sleep(10000),以允许调试器根据 MS 建议生成。

标签: c#windowsblazor-webassembly

解决方案


我在想客户端应用程序,意思是客户端访问。愚蠢的我敢于梦想!

您不能从应用程序本身访问 sql db,因为它仍在 Web 应用程序的上下文中运行。因此 CORRS /server 端 API 适用于 SQL。

库存溢出回答稍后发现的类似问题

显然是的,但对于习惯于完全桌面访问的 WPF 人来说,这并不明显!

历史:我正在为我想到的特定任务编写一个简单的 Net/Sql 监控应用程序。但它需要在各种非集中式 PC 上本地运行。在这一点上,我认为(不参与 - 它可以做这个大脑)是一个很好的小 Blazor 客户端应用程序测试,看看它可以做什么。不,它不会。哈哈!哦,那么回到好的 ol WPF 吧!


推荐阅读