Изменение размера образа ядра .NET: «Не удалось загрузить файл или сборку» - PullRequest
0 голосов
/ 12 апреля 2019

Я создаю промежуточное программное обеспечение для изменения размера изображения для моего веб-сайта .net core 2.0 с https://github.com/saucecontrol/PhotoSauce. После публикации моего приложения на Windows Server 2012 (.NET Framework 4.7.2) оно больше не будет работать. Что я могу сделать?

2019-04-12 13: 34: 46.656 +02: 00 [ERR] Произошло необработанное исключение при выполнении запроса. System.IO.FileLoadException: не удалось загрузить файл или сборку 'System.Runtime, версия = 4.2.1.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a'. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040) Имя файла: 'System.Runtime, версия = 4.2.1.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a' at Notenverwaltung.Middleware.MagicScalerImageResizer.Resize (параметры Stream inputStream, Stream outputStream, ImageResizerOptions) в Notenverwaltung.Middleware.ImageHandlerMiddleware. <> c__DisplayClass6_1.b__0 () в C: \ ba \ work \ 6b084d553e5d8510 \ Notenverwaltung \ Notenverwaltung \ Middleware \ ImageHandlerMiddleware.cs: строка 45 в System.Threading.ExecutionContext.Run (ExecutionContext executeContext, обратный вызов ContextCallback, состояние объекта) в System.Threading.Tasks.Task.ExecuteWithThreadLocal (Task & currentTaskSlot) --- Конец стека трассировки от предыдущего местоположения, где было сгенерировано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в Notenverwaltung.Middleware.ImageHandlerMiddleware.d__6.MoveNext () в C: \ ba \ work \ 6b084d553e5d8510 \ Notenverwaltung \ Notenverwaltung \ Middleware \ ImageHandlerMiddleware.cs: строка 43 --- Конец стека трассировки от предыдущего местоположения, где было сгенерировано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в Microsoft.AspNetCore.ResponseCaching.ResponseCachingMiddleware.d__9.MoveNext () --- Конец стека трассировки от предыдущего местоположения, где было сгенерировано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.d__6.MoveNext ()

        public async Task InvokeAsync(HttpContext context)
        {
            var path = context.Request.Path.Value;

            if (path.StartsWith($"/{_pathStart}"))
            {
                var pathToImage = _env.WebRootPath + path.Replace($"{_pathStart}/", default(string)).Replace("/", "\\");

                if (File.Exists(pathToImage))
                {
                    int.TryParse(context.Request.Query["w"], out var newImageWidth);
                    int.TryParse(context.Request.Query["h"], out var newImageHeight);
                    var options = new ImageResizerOptions(newImageWidth, newImageHeight);

                    await Task.Factory.StartNew(() =>
                    {
                        _imageResizer.Resize(File.OpenRead(pathToImage), context.Response.Body, options); // <-- It's this that goes wrong
                    });
                }
                else
                {
                    context.Response.StatusCode = (int)HttpStatusCode.NotFound;
                    await context.Response.WriteAsync("NOT FOUND");
                }
                return;
            }
            await _next(context);
        }
public void Resize(Stream inputStream, Stream outputStream, ImageResizerOptions options)
        {
            using (var memoryStream = new MemoryStream())
            {
                var settings = new ProcessImageSettings
                {
                    Width = options.NewWidth,
                    Height = options.NewHeight
                };

                MagicImageProcessor.ProcessImage(inputStream, memoryStream, settings);

                memoryStream.WriteTo(outputStream);
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...