You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JeringTech/Javascript.NodeJS在.NET API调用Node执行JS遇500错误求助

问题分析与解决方案

报错System.Net.Sockets.SocketException (11001): No such host is known表明你的.NET API无法解析Node.js子进程的主机地址,进而无法建立跨进程通信——Jering.Javascript.NodeJS库通过启动Node.js子进程并基于HTTP完成调用,核心问题出在本地网络解析或通信拦截上。结合代码曾在其他机器正常运行,以下是针对性排查步骤:

1. 验证localhost解析正确性

  • 打开命令行执行ping localhost,确认返回地址为127.0.0.1。
  • 检查系统hosts文件(路径:C:\Windows\System32\drivers\etc\hosts),确保存在以下条目:
    127.0.0.1       localhost
    ::1             localhost
    
    若缺失,添加后保存(需管理员权限)。

2. 强制Jering库使用127.0.0.1而非localhost

绕过localhost解析问题,直接指定IP地址。在项目的服务配置代码(Program.cs/Startup.cs)中添加:

// 依赖注入方式配置
builder.Services.AddNodeJS(options =>
{
    options.HttpServerOptions.Host = "127.0.0.1";
});

// 若继续使用StaticNodeJSService
StaticNodeJSService.Configure(options =>
{
    options.HttpServerOptions.Host = "127.0.0.1";
});

3. 排查防火墙/安全软件拦截

当前机器的防火墙、杀毒软件或端点安全工具可能拦截了本地进程间的HTTP通信:

  • 临时关闭防火墙测试,若问题解决,添加.NET API进程和Node.js进程的本地通信允许规则。
  • 检查安全软件的“应用控制”或“网络保护”模块,确认未阻止相关进程。

4. 确认Node.js环境可用性

  • 执行node -v确认Node.js已安装且加入系统环境变量。
  • 若Node.js路径未被正确识别,可在配置中手动指定:
    builder.Services.AddNodeJS(options =>
    {
        options.NodeJSProcessOptions.NodeExecutablePath = @"C:\Program Files\nodejs\node.exe"; // 替换为你的Node.js实际路径
    });
    

5. 禁用全局代理干扰

若系统配置了全局HTTP代理,可能导致本地请求被错误转发:

builder.Services.AddNodeJS(options =>
{
    options.HttpClientHandler = new HttpClientHandler
    {
        UseProxy = false,
        Proxy = null
    };
});

内容的提问来源于stack exchange,提问作者Bruno Portugal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 13:52:36