gpt4 book ai didi

asp.net-mvc - 从 ASP.NET MVC 项目运行 Edge.js

转载 作者:太空宇宙 更新时间:2023-11-03 22:30:20 25 4
gpt4 key购买 nike

我在尝试从 ASP.NET MVC 项目运行 Edge.js 时度过了一段有趣的时光。从 Edge 文档来看,基本的控制台应用程序是这样的:

public static async Task Start()
{
var func = Edge.Func(@"
return function (data, callback) {
callback(null, 'Node.js welcomes ' + data);
}");

Console.WriteLine(await func(".NET"));
}

static void Main(string[] args)
{
Start().Wait();
}

这在我的机器上没有问题。下一步是创建 ASP.NET MVC 项目,并尝试从表单驱动的 Controller 操作运行相同的脚本。 ASP.NET MVC 项目默认在 IIS Express 上运行。

这是 Controller :

public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}

[HttpPost]
public async Task<ActionResult> TestEdge()
{
try
{
var func = Edge.Func(@"
return function (data, callback) {
callback(null, 'Node.js welcomes ' + data);
}");

Console.WriteLine(await func(".NET"));
return RedirectToAction("Index");
}
catch (Exception ex)
{
Console.WriteLine(ex.GetBaseException().Message);
return RedirectToAction("Index");
}
}
}

不幸的是,对 Edge.Func 的调用失败了。异常(exception)的是

System.DllNotFoundException was unhandled
Message: An unhandled exception of type 'System.DllNotFoundException' occurred in EdgeJs.dll
Additional information: Unable to load DLL 'node.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

我已全局安装 Edge(通过 npm install edge -g)。

我尝试将 node.dll 文件直接复制到 bin 文件夹中,但这会生成 BadImageFormat 异常。

根据 Edge.js 文档,“在 ASP.NET Web 应用程序中通过 Edge.js 使用 Node.js 与在 .NET 控制台应用程序中没有什么不同”。然而,这是 ASP.NET 应用程序中最简单的实现,因此必定存在一些差异。根据文档中的建议,我还尝试将 node_modules 子目录复制到 Web 应用程序的 bin 文件夹中,但这没有帮助。

如有任何进一步的建议,我们将不胜感激。

最佳答案

卸载并重新安装 Edge.js NuGet 包为我解决了这个问题。

要从 IIS Express 迁移到 IIS,您需要安装 iisnode .

关于asp.net-mvc - 从 ASP.NET MVC 项目运行 Edge.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37833522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com