无法将stream作为parameter passing给aspnet.core.NodeServices中的JS

目前我正在将一个“旧”的ASP MVC项目迁移到新的Core MVC(1.1),从一个突破转变到另一个。 我现在被困在主题“image processing”,因为System.Web.Helpers.WebImage被删除。 我看了几个可能的解决scheme,并喜欢通过Microsoft.AspNetCore.NodeServicesbuild议的方式在这个评论中描述!

使用示例脚本并传递文件名时,这一切都可以正常工作。 我花了几个小时来试图让这个同样的东西在我读取来自数据库的图像数据时传递一个字节stream,并想直接通过它传递给JS。

JS使用JIMP库:

var jimp = require("jimp"); module.exports = function (result, source, mimeType, maxWidth, maxHeight) { // Invoke the 'jimp' NPM module, and have it pipe the resulting image data back to .NET jimp.read(source.buffer).then(function (file) { var width = maxWidth || jimp.AUTO; var height = maxHeight || jimp.AUTO; file.resize(maxWidth, height) .getBuffer(mimeType, function (err, buffer) { var stream = result.stream; stream.write(buffer); stream.end(); }); }).catch(function (err) { console.error(err); }); }; 

在我的图像控制器上的行动

 var imageStream = await _nodeServices.InvokeAsync<Stream>( "Node/resizeImageBuffer", bild.BildDaten.Daten, // byte[] bild.Mimetype, // "image/jpeg" targetsize, // eg 400 targetsize); 

当我像这样调用它时,我的byte []被序列化为string,并且不作为节点中的缓冲区工作。

当我试图包装在一个stream,JS甚至没有执行,因为它打破了序列化参数。 所以像这样:

 var imageStream = await _nodeServices.InvokeAsync<Stream>( "Node/resizeImageBuffer", new MemoryStream(bild.BildDaten.Daten), // MemoryStream bild.Mimetype, // "image/jpeg" targetsize, // eg 400 targetsize); 

它抛出

 JsonSerializationException: Error getting value from 'ReadTimeout' on 'System.IO.FileStream'. 

我所做的净得到,从节点到C#的结果stream工作,是一个有效的System.IO.Stream对象,但同样不工作作为输出参数…也许有人有一个想法?