.NET 8 ASP.NET Core应用Release构建及指定Windows目标时堆损坏
ASP.NET Core 8 + GStreamer-Sharp 堆损坏问题(Target OS设为Windows时崩溃)
我正在开发一个ASP.NET Core Web应用,近期已升级至.NET 8.0。该应用通过GStreamer-Sharp绑定与GStreamer交互,为使绑定适配.NET 8,我使用.NET升级助手工具升级了绑定解决方案,编译代码后生成了对应的NuGet包。
问题现象
- 在Visual Studio 2022中使用Debug构建配置测试时,所有功能运行正常
- 部署到生产环境后,执行到GStreamer代码的特定节点时,事件查看器中出现堆损坏错误
- 后续测试发现:若将项目的Target OS从
(None)改为Windows,无论Debug还是Release模式都会触发崩溃;之前误判VS中Release模式会崩溃,现在该模式下已恢复正常
错误日志信息
事件查看器记录
Faulting application name: SecurityCameraViewer.exe, version: 1.0.8852.29269, time stamp: 0x65cd0000 Faulting module name: ntdll.dll, version: 10.0.19041.3996, time stamp: 0x39215800 Exception code: 0xc0000374 Fault offset: 0x00000000000ff349 Faulting process id: 0x9584 Faulting application start time: 0x01da809cae75c5ef Faulting application path: C:\Users\Dan\source\repos\SecurityCameraViewer\SecurityCameraViewer\bin\Release\net8.0\SecurityCameraViewer.exe Faulting module path: C:\Windows\SYSTEM32\ntdll.dll Report Id: 4f9a8b5b-78a9-4ea0-86d1-7a1f7e02115a Faulting package full name: Faulting package-relative application ID:
DebugDiag捕获的堆栈信息
DetailID = 1 Count: 1 Exception #: 0X80000003 Stack: ntdll!RtlReportCriticalFailure+0x56 ntdll!RtlpHeapHandleError+0x12 ntdll!RtlpHpHeapHandleError+0x7a ntdll!RtlpLogHeapFailure+0x45 ntdll!RtlpFreeHeapInternal+0x4e0 ntdll!RtlFreeHeap+0x51 ucrtbase!_free_base+0x1b gstsdp_1_0_0!gst_sdp_message_free+0x1b gstwebrtc_1_0_0!gst_webrtc_session_description_free+0x18 gobject_2_0_0!g_value_unset+0x29 gstreamer_1_0_0!gst_structure_free+0x60 gstreamer_1_0_0!gst_promise_expire+0x163 gstreamer_1_0_0!gst_mini_object_unref+0x307 gstwebrtc!gst_plugin_webrtc_register+0x9817 glib_2_0_0!g_list_sort_with_data+0x231 glib_2_0_0!g_source_destroy+0xdc glib_2_0_0!g_main_depth+0x1ce glib_2_0_0!g_main_context_is_owner+0x20a glib_2_0_0!g_main_loop_run+0x133 gstwebrtc!gst_plugin_webrtc_register+0x9fed glib_2_0_0!g_thread_new+0x1a2 glib_2_0_0!g_rw_lock_writer_unlock+0x4a7 ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x42 KERNEL32!BaseThreadInitThunk+0x14 ntdll!RtlUserThreadStart+0x21 DetailID = 2 Count: 2 Exception #: 0XC0000374 Stack: ntdll!RtlReportFatalFailure+0x9 ntdll!RtlReportCriticalFailure+0x97 ntdll!RtlpHeapHandleError+0x12 ntdll!RtlpHpHeapHandleError+0x7a ntdll!RtlpLogHeapFailure+0x45 ntdll!RtlpFreeHeapInternal+0x4e0 ntdll!RtlFreeHeap+0x51 ucrtbase!_free_base+0x1b gstsdp_1_0_0!gst_sdp_message_free+0x1b gstwebrtc_1_0_0!gst_webrtc_session_description_free+0x18 gobject_2_0_0!g_value_unset+0x29 gstreamer_1_0_0!gst_structure_free+0x60 gstreamer_1_0_0!gst_promise_expire+0x163 gstreamer_1_0_0!gst_mini_object_unref+0x307 gstwebrtc!gst_plugin_webrtc_register+0x9817 glib_2_0_0!g_list_sort_with_data+0x231 glib_2_0_0!g_source_destroy+0xdc glib_2_0_0!g_main_depth+0x1ce glib_2_0_0!g_main_context_is_owner+0x20a glib_2_0_0!g_main_loop_run+0x133 gstwebrtc!gst_plugin_webrtc_register+0x9fed glib_2_0_0!g_thread_new+0x1a2 glib_2_0_0!g_rw_lock_writer_unlock+0x4a7 ucrtbase!thread_start<unsigned int (__cdecl*)(void *),1>+0x42 KERNEL32!BaseThreadInitThunk+0x14 ntdll!RtlUserThreadStart+0x21
当前困境
调试陷入瓶颈,不清楚ASP.NET Core项目的Target OS设置(或之前的Release构建)会对GStreamer交互部分产生何种影响,怀疑是GStreamer-Sharp绑定的构建环节存在需要调整的配置。
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

