【C#】.net core2.1,在实体类写了个非常经典的无限循环错误

简介: 遇到一个非常有趣的bug,使用VS2017调试运行.net core2.1 MVC项目时,程序本身运行的好好的,突然启动起来就报错不得不说,编码细节很重要
作者:小5聊基础
简介:一只喜欢全栈方向的程序员,欢迎咨询,尽绵薄之力答疑解惑
编程原则:Write Less Do More

遇到一个非常有趣的bug,使用VS2017调试运行.net core2.1 MVC项目时,程序本身运行的好好的,突然启动起来就报错 <br/>
不得不说,编码细节很重要

 报错如下

  • 启动时提示

20220611101227.png

  • 页面报错提示

20220611101222.png

2、原因分析

1)在报错前,什么代码都未修改,然后网上找解决方案,对于这类问题都是千篇一律,基本都是在IIS环境出现,后来找到一个关键点,重定向。

2)然后从程序断点调式,确认Startup启动文件方法是否可以执行,确认可执行,初步排查应该不是这个环境出错

3)然后再到重定向里排查,因为MVC加了一个权限验证,未登录Redirect,发现公共控制器是可以进来

4)然后逐个排查分析,结果是在公共控制器的finally代码发生异常,注释掉代码,程序可运行

5)再排查到是运行如下代码直接自动关闭运行

Task.Factory.StartNew

分析来分析去,运行到这个代码又没有报错,已经加了try_catch,没有跳到catch

6)最后一拍大腿,天空飘来两个字WC,想起来了,再实体类里嵌套添加了实体类,写了一个非常经典的循环逻辑错误

public class OneEntity
{
    public class int id {get;set;}
    public class string name {get;set;}
}
public class TwoEntity : OneEntity
{
    public PageEntity one
    {
        get
        {
            OneEntity oneEntity = new OneEntity();
            oneEntity.page_index = page_index;
            oneEntity.page_size = page_size;

            return one; //此处是错误点,返回了自己本身,这里应该返回oneEntity
        }
    }
}

3、真正原因

编码逻辑问题,写了个无限循环,自己返回自己本身,所以,程序检查到无限循环后自动报错了

相关文章
|
1月前
|
安全 编译器 程序员
C# 中 foreach 循环和 for 循环深度比较
为什么建议你多数情况下使用 foreach 进行遍历循环?看完你就明白了
|
1月前
|
Java 物联网 C#
C#/.NET/.NET Core学习路线集合,学习不迷路!
C#/.NET/.NET Core学习路线集合,学习不迷路!
|
8天前
|
开发框架 监控 .NET
C#进阶-ASP.NET WebForms调用ASMX的WebService接口
通过本文的介绍,希望您能深入理解并掌握ASP.NET WebForms中调用ASMX WebService接口的方法和技巧,并在实际项目中灵活运用这些技术,提高开发效率和应用性能。
25 5
|
16天前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
62 13
|
1月前
|
Java 物联网 编译器
C#一分钟浅谈:.NET Core 与 .NET 5 区别
本文对比了 .NET Core 和 .NET 5,从历史背景、主要区别、常见问题及易错点等方面进行了详细分析。.NET Core 侧重跨平台支持和高性能,而 .NET 5 在此基础上统一了 .NET 生态系统,增加了更多新特性和优化。开发者可根据具体需求选择合适的版本。
49 7
|
1月前
|
人工智能 开发框架 前端开发
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
C#/.NET/.NET Core技术前沿周刊 | 第 12 期(2024年11.01-11.10)
|
1月前
|
开发框架 网络协议 .NET
C#/.NET/.NET Core优秀项目和框架2024年10月简报
C#/.NET/.NET Core优秀项目和框架2024年10月简报
|
25天前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
|
25天前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。
|
1月前
|
人工智能 开发框架 安全
C#/.NET/.NET Core技术前沿周刊 | 第 13 期(2024年11.11-11.17)
C#/.NET/.NET Core技术前沿周刊 | 第 13 期(2024年11.11-11.17)