我还在 Edge 的 github 页面中提出了一个问题,链接在这里 https://github.com/tjanczuk/edge/issues/579
我正在尝试在我的 .NET 应用程序中使用 Edge 来运行快速节点程序来进行一些小的视频处理。
我已经验证了 javascript 是否有效 - 独立运行“node test.js”对其进行了测试。我已经通过创建一个小型 C# 控制台应用程序并测试来验证我正在正确调用和使用 Edge.func 方法,并测试当我在 CMD (testApp.exe) 中运行它时,视频处理是否通过使用 Edge 的节点工作(它确实)。
问题是,当我尝试使用 Edge 通过我的 POST Web 服务运行下面显示的异步方法时,我得到了第一个日志——“在 Edge 任务中”——但我从来没有在底部得到日志——“在异步调用中”——并且客户端我收到一个网络错误,提示 net::ERR_CONNECTION_RESET 失败。
public static async Task Start()
{
LogManager.Instance.WriteLog("In Edge Task");
var func = Edge.Func(@"
var ffmpeg = require('fluent-ffmpeg');
return function (data, callback) {
var proc2 = ffmpeg('testFile-0.webm')
.input('testFile-1.webm')
.on('error', function(err) {
callback(null, 'ERRORRRR');
})
.on('end', function() {
callback(null, '');
})
.mergeToFile('merged-fromNET.mp4', 'tempDir');
}
");
LogManager.Instance.WriteLog("in async call");
await func(null);
}
如果我从我的测试控制台应用程序调用此异步任务 Start() 方法,它可以正常工作...
我已经验证我的 post 服务设置正确,因为没有使用 Start.Wait() 执行此方法,将其注释掉,服务可以正常执行。我已经在正确的目录中安装了必要的节点模块和使用的视频文件和必要的 dll,所以我确信这不是问题。
请帮忙,谢谢你的时间。