You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8中MemoryStream抛出InvalidOperationException异常求助

.NET 8中MemoryStream调试时出现InvalidOperationException的原因分析

首先明确:你的代码实际运行时不会抛出异常,这个异常是调试器查看ReadTimeout和WriteTimeout属性时触发的,并非代码执行阶段的错误。

核心原因

MemoryStream从设计上就不支持超时机制,因此它的ReadTimeout和WriteTimeout属性的get访问器,无论在.NET Framework还是.NET 8中,都会抛出InvalidOperationException。两者的差异仅在于调试器的行为:

  • .NET Framework(4.6+)的调试器默认不会主动读取这两个属性,所以你看不到异常提示;
  • .NET 8配套的调试器(如Visual Studio 2022)在展示对象属性列表时,会尝试读取所有属性的值,包括这两个本就会抛出异常的属性,因此你在调试窗口看到了异常信息。

验证与处理

直接运行代码会发现它能正常执行,不会出现运行时错误。如果调试时不想看到这个提示,只需忽略这两个属性即可——它们对MemoryStream的正常使用没有任何影响,因为MemoryStream本身就不支持超时操作。

另外,代码中var foobar = ms;这一行只是简单的变量赋值,本身不会触发异常,异常是调试器展示ms或foobar的属性时触发的。

内容的提问来源于stack exchange,提问作者HBCondo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 10:51:00