Иногда 500 с использованием плагина Faces - делегаты не могут быть собраны

Мы используем 3.4.3 ImageResizer и элитные плагины. Кажется, у нас возникли проблемы с плагином Faces. Изображения не будут отображаться, и при просмотре сетевого ответа трассировка стека покажет: "Делегаты не могут быть перенесены из собственного кода в домен, отличный от их домашнего домена". Полный след здесь


[NotSupportedException: Delegates cannot be marshaled from native code into a domain other than their home domain.]
   System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointerInternal(IntPtr ptr, Type t) +0
   System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer(IntPtr ptr, Type t) +267
   OpenCvSharp.CvInvoke..cctor() +328

[TypeInitializationException: The type initializer for 'OpenCvSharp.CvInvoke' threw an exception.]
   OpenCvSharp.Cv.Load(String filename, CvMemStorage memstorage, String name, String& real_name) +222
   ImageResizer.Plugins.Faces.FeatureDetectionBase`1.LoadFiles() +621
   ImageResizer.Plugins.Faces.FeatureDetectionBase`1.DetectFeatures(Bitmap b) +82
   ImageResizer.Plugins.Faces.FacesPlugin.PostPrepareSourceBitmap(ImageState s) +341
   ImageResizer.Resizing.AbstractImageProcessor.PostPrepareSourceBitmap(ImageState s) +99
   ImageResizer.ImageBuilder.Process(ImageState s) +60
   ImageResizer.ImageBuilder.buildToBitmap(Bitmap source, ResizeSettings settings, Boolean transparencySupported) +276
   ImageResizer.ImageBuilder.buildToStream(Bitmap source, Stream dest, ResizeSettings settings) +149
   ImageResizer.ImageBuilder.BuildJob(ImageJob job) +1353
   ImageResizer.ImageBuilder.Build(ImageJob job) +268
   ImageResizer.ImageBuilder.Build(Object source, Object dest, ResizeSettings settings, Boolean disposeSource, Boolean addFileExtension) +124
   ImageResizer.ImageBuilder.Build(Object source, Object dest, ResizeSettings settings, Boolean disposeSource) +36
   ImageResizer.ImageBuilder.Build(Object source, Object dest, ResizeSettings settings) +23
   ImageResizer.<>c__DisplayClass3.<HandleRequest>b__2(Stream stream) +287
   ImageResizer.Plugins.DiskCache.<>c__DisplayClasse.<TryWriteFile>b__d() +593
   ImageResizer.Plugins.DiskCache.LockProvider.TryExecute(String key, Int32 timeoutMs, LockCallback success) +424
   ImageResizer.Plugins.DiskCache.CustomDiskCache.TryWriteFile(CacheResult result, String physicalPath, String relativePath, ResizeImageDelegate writeCallback, DateTime sourceModifiedUtc, Int32 timeoutMs, Boolean recheckFS) +517
   ImageResizer.Plugins.DiskCache.CustomDiskCache.GetCachedFile(String keyBasis, String extension, ResizeImageDelegate writeCallback, DateTime sourceModifiedUtc, Int32 timeoutMs, Boolean asynchronous) +819
   ImageResizer.Plugins.DiskCache.DiskCache.Process(IResponseArgs e) +209
   ImageResizer.Plugins.DiskCache.DiskCache.Process(HttpContext context, IResponseArgs e) +47
   ImageResizer.InterceptModule.HandleRequest(HttpContext context, String virtualPath, NameValueCollection queryString, IVirtualFile vf) +1687
   ImageResizer.InterceptModule.CheckRequest_PostAuthorizeRequest(Object sender, EventArgs e) +1163
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +92
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +165

Я нашел эту страницу и убедился, что мы не используем переработку с перекрытием. Я попытался обновить до 4.1.7, но это было немного кошмаром, пытаясь заставить все версии / битность opencv выстроиться в линию. Приложение часто зависало и удерживало остальные сайты в зависимости от его заложенности, поэтому мы откатились до версии 3.4.3, которая, по крайней мере, работает, а затем - нет. Наши обычные проблемы временно исчезают, когда мы перезапускаем пул приложений IR.

Наши веб-приложения размещены на двух VMS с балансировкой нагрузки BigIP. Каждая виртуальная машина имеет два веб-приложения, и они совместно используют один и тот же преобразователь изображения, размещенный на том же сервере, что и они, и использует URL API для выполнения запросов на изменение размера, распознавания лиц + обрезки и т. Д.

Еще одна информация, которую я смог получить, была от DebugDiag. Я получил сбой приложения со следующим сообщением:


In w3wp__ImageResizer__PID__5284__Date__06_14_2017__Time_08_23_10AM__122__First chance exception 0XE0434352.dmp the assembly instruction at KERNELBASE!RaiseException in C:\Windows\System32\KERNELBASE.dll from Microsoft Corporation has caused a CLR Exception on thread 28 with the following error information:
    Type:   ImageResizer.Plugins.Faces.AlternateResponseException 
    Message:   Resizing was canceled as JSON data was requested instead 
This exception originated from ImageResizer.Plugins.Faces.FacesPlugin.Render(ImageResizer.Resizing.ImageState).

Страница отладки может быть найдена здесь

0 ответов

Другие вопросы по тегам