Ошибка 'CLR20r3' при вызове внешней программы
У меня есть портал на Python 3.11 и Django 5.0.8 этот портал в некоторых моментах вызывает внешнее приложение разработанное на vb.net, вот как я вызываю vb. net приложение subprocess.call('C:\\some\\Direction\\ExternalApp.exe', 'parameter1', 'parameter2', 'parameter3', 'parameter4', ...)
, я пробовал портал с IIS 10 на windows 11 и python сервер и работает нормально, но при использовании в IIS 10 на windows server 2022 standard выдает мне ошибку, а при использовании python сервер на WS 2022 работает нормально, вот ошибка, которая показывает мне просмотрщик событий:
Aplicación: ExternaApp.exe
Versión de Framework: v4.0.30319
Descripción: el proceso terminó debido a una excepción no controlada.
Información de la excepción: System.IndexOutOfRangeException
en System.Data.DataView.GetRow(Int32)
en System.Data.DataView.get_Item(Int32)
en ExternalApp.cls.function(Int32, Int32, Int32, System.String, System.String, System.String, System.String, System.String)
en ExternalApp.DM1.Main()
Nombre de la aplicación con errores: ExternalApp.exe, versión: 1.0.0.0, marca de tiempo: 0x66f5c058
Nombre del módulo con errores: KERNELBASE.dll, versión: 10.0.20348.2227, marca de tiempo: 0xe95c736c
Código de excepción: 0xe0434352
Desplazamiento de errores: 0x000000000003f19c
Identificador del proceso con errores: 0x3804
Hora de inicio de la aplicación con errores: 0x01db113917154b04
Ruta de acceso de la aplicación con errores: C:\some\direction\ExternalApp.exe
Ruta de acceso del módulo con errores: C:\Windows\System32\KERNELBASE.dll
Identificador del informe: c2dd5273-2d2d-4f89-9f3c-136d4f99f49a
Nombre completo del paquete con errores:
Identificador de aplicación relativa del paquete con errores:
Depósito con errores 2097650123060317690, tipo 5
Nombre de evento: CLR20r3
Respuesta: No disponible
Identificador de archivo .cab: 0
Firma del problema:
P1: ExternalApp.exe
P2: 1.0.0.0
P3: 66f5c058
P4: System.Data
P5: 4.8.4690.0
P6: 6567d997
P7: e82
P8: b
P9: System.IndexOutOfRangeException
P10:
Я даже попробовал выполнить это приложение с помощью команды cmd и приложение работает нормально, так же работает выполнение с помощью команды и использование портала с веб-сервером python, но не в IIS, я думаю, что это может быть какая-то проблема с правами, но я могу решить это
Я четко вижу имя исключения в сообщении об ошибке: IndexOutOfRangeException
. Что касается того, как найти проблему на основе этой информации, вы можете использовать инструмент IL Disassembler в Visual Studio, чтобы помочь вам. Просто обратитесь к этому похожему случаю: Расшифровка параметров исключения .NET clr20r3 P1..P10
А данные, соответствующие P1
, - это ваше внешнее приложение, а не w3wp.exe
, поэтому я думаю, что эта проблема может быть не связана с IIS, а скорее всего, метод в вашем коде несовместим с версией .NET framework. Вы можете попробовать установить другую версию, чтобы проверить, работает ли это: https://dotnet.microsoft.com/en-us/download/dotnet-framework/net48