iisexpress 崩溃由客户端 Web 浏览器触发。错误是“程序 iisexpress exe 已退出,代码为 0xc0000005 访问冲突”

问题描述 投票:0回答:4

开发 Web 应用程序时,Web 客户端上的一个按钮开始导致应用程序崩溃。

VS 调试视图和客户端浏览器紧密结合在一起。 VS 2019 调试输出显示以下错误(客户端或服务器上没有其他可用信息):

The program '[23396] iisexpress.exe' has exited with code -1073741819 (0xc0000005) 'Access violation'.
这会绕过所有 try/catch ,这使得调试变得困难。

c# debugging recursion iis-express
4个回答
22
投票

由于无限递归调用,我收到此错误。
要查明此类错误,请添加断点和日志行(或单步执行)!!!
就我而言,在某些情况下,get 属性错误地返回了自身。

Visual Studio 调试会话的崩溃自然会
关闭 Web 浏览器(由 VS 打开),这会增加混乱。就好像客户端崩溃了。只有当您保持另一个浏览器会话连接到 localhost://nnnnn 时,您才会看到崩溃的是服务器。


0
投票
我通过在包管理器控制台中使用

update-package

 更新所有包来解决这个问题...这是一个从 .net core 3.1 升级到 .net7 的项目

某些服务/图书馆似乎正在发生这种情况。如果这没有帮助,请尝试一项一项地剥离服务,以找出导致该问题的服务。很可能与 DI 有关。


0
投票
我通过在包管理器控制台中使用

update-package

 更新所有包来解决这个问题...这是一个从 .net core 3.1 升级到 .net7 的项目

某些服务/图书馆似乎正在发生这种情况。如果这没有帮助,请尝试一项一项地剥离服务,以找出导致该问题的服务。很可能与 DI 有关。


-1
投票
当我在属性 getter(IsRunning) 中调用系统方法(Process.GetProcessById()) 时,我亲自经历过此错误消息。 Entity Framwork Core 在检索属性所在的对象时访问 getter,并且系统调用导致了错误消息。

public bool IsRunning { get { var exited = Process.GetProcessById(ProcessId).HasExited; return !exited; } set { IsRunning = value; } }
这是事后诸葛亮,

不是大脑袋。我改成这样的代码:

public bool IsRunning { get; set; }
非常简单。我选择避免依赖 getter 来实现我想要的逻辑。

© www.soinside.com 2019 - 2024. All rights reserved.