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

Windows 11环境下System.Net.Http.StringContent是否存在Bug?

.NET 6 StringContent 在 Windows 11 环境下无内容字节数组问题排查

我有一段基于.NET 6的代码,在Windows 10/Windows Server 2019虚拟机+Visual Studio 17.4.2环境中稳定运行多年。近期搭建Windows 11虚拟机并安装同版本Visual Studio后,代码编译正常,但运行时创建StringContent出现异常:无错误抛出,但调试可见StringContent仅包含头信息,无内容字节数组。两台机器的System.Net.Http.dll版本完全一致:

  • 程序集名称:System.Net.Http
  • 程序集版本:6.0.0.0
  • 文件版本:6.0.1122.52304
  • 路径:C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\6.0.11\ref\net6.0\System.Net.Http.dll

相关代码片段:

var requestUriWithQuery = string.Concat(requestUri, "?", query);

var httpContent = new StringContent(JsonConvert.SerializeObject(content), Encoding.UTF8, "application/json");

var requestMessage = new HttpRequestMessage(HttpMethod.Post, requestUriWithQuery);

requestMessage.Content = httpContent;

调试对比:

  • Windows Server 2019虚拟机:StringContent包含正常的内容字节数组
  • Windows 11虚拟机:StringContent仅显示头信息,无内容字节数组

排查方向

  1. 验证序列化结果有效性
    直接输出JsonConvert.SerializeObject(content)的字符串结果,确认Windows 11环境下是否生成了有效JSON。有可能是content对象在新环境中因序列化配置、属性访问权限等问题,导致序列化后为空字符串。

  2. 确认实际运行时版本
    虽然引用的程序集版本一致,但实际运行时可能存在差异。在代码中添加以下输出,检查运行时细节:

    Console.WriteLine(System.Environment.Version.ToString());
    Console.WriteLine(System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription);
    

    确保Windows 11虚拟机安装了正确的.NET 6.0.11运行时,避免自动更新导致版本不一致。

  3. 排查调试器显示bug
    有时调试器的可视化视图会出现异常,并非实际内容为空。可以通过以下代码验证StringContent的真实内容:

    var contentStr = await httpContent.ReadAsStringAsync();
    Console.WriteLine(contentStr);
    

    如果输出正常,说明是调试器显示问题,不影响实际请求;如果输出为空,再聚焦序列化或StringContent构造逻辑排查。

  4. 检查Visual Studio调试配置
    确认Windows 11环境下的项目是否启用了"优化代码"选项,该选项可能导致调试时无法正确显示对象内容。可以关闭项目属性中的"优化代码",重新编译调试。

  5. 清理重建项目
    删除项目的bin、obj目录,清理NuGet缓存后重新编译,避免缓存文件损坏引发异常。

  6. 核对.NET环境配置
    检查Windows 11虚拟机的DOTNET_ROOT环境变量是否指向正确的.NET 6 SDK路径,防止项目意外调用其他版本的运行时。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:40:44