c# - .NET 核心图像大小调整:“无法加载文件或程序集”
问题描述
我正在使用https://github.com/saucecontrol/PhotoSauce为我的 .net core 2.0 网站创建一个图像大小调整中间件。将我的应用程序发布到 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,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”。找到的程序集的清单定义与程序集引用不匹配。(HRESULT 异常:0x80131040)文件名:Notenverwaltung.Middleware.MagicScalerImageResizer.Resize(流输入流,流输出流,ImageResizerOptions 选项)的 Notenverwaltung 中的“System.Runtime,版本=4.2.1.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”。 Middleware.ImageHandlerMiddleware.<>c__DisplayClass6_1.b__0() 在 C:\ba\work\6b084d553e5d8510\Notenverwaltung\Notenverwaltung\Middleware\ImageHandlerMiddleware.cs:System.Threading 的第 45 行。
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);
}
}
解决方案
推荐阅读
- java - 无论出于何种原因,我的 Java drawString 命令都没有绘制文本
- python - 在 Python 中,如何删除列表中的最后一个元组 (None,)?该列表与字符串和浮点数混合
- r - 在ggplot中使用..prop ..时如何为条形图着色?
- c++ - Qt中的删除按钮
- java - 新列表();
- spring - sprint boot - redis 键分隔符
- arrays - 设置可见性槽属性不起作用 actionscript 3.0
- android - Swipte to Refresh 不断添加 TextViews
- hive - 在 Hive 表中重命名名称为 count( distinct( id )) 的列
- sql - 使用 DATEADD 后如何转换值