Node.js 来自节点的rest调用失败
我正在构建一个node.js/express应用程序,它对其他内部web应用程序(ASP.NET web API)进行远程调用,以从中使用json。我们在一个企业网络中。这是一个奇怪的问题 在我的MacOSX(Mavericks)上,我可以从shell中卷曲并从Node.js 来自节点的rest调用失败,node.js,debugging,networking,express,Node.js,Debugging,Networking,Express,我正在构建一个node.js/express应用程序,它对其他内部web应用程序(ASP.NET web API)进行远程调用,以从中使用json。我们在一个企业网络中。这是一个奇怪的问题 在我的MacOSX(Mavericks)上,我可以从shell中卷曲并从http://our_internal_host:9991/connections。我还可以键入此URL并从浏览器中查看JSON响应 当我在本地运行此express应用程序并请求进行远程呼叫的路由时,我在控制台上看到此错误。路由处理程序在
http://our_internal_host:9991/connections
。我还可以键入此URL并从浏览器中查看JSON响应
当我在本地运行此express应用程序并请求进行远程呼叫的路由时,我在控制台上看到此错误。路由处理程序在下面记录此消息,浏览器挂起
{ [Error: connect ECONNREFUSED]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect' }
节点进程无法连接到该地址。我也有一台Windows 7机器在工作,我没有在我的Windows 7机器上遇到这个问题。当我在Windows7上运行相同的节点应用程序时,我没有任何问题
我不知道如何解决这个问题
附言:我的一位同事有相同的设置,但他没有这个问题。我们比较了DNS配置,但我们的设置看起来是相同的
非常感谢您提供任何解决此问题的建议。我知道这是特定于环境的问题,但不确定从哪里开始。
谢谢
编辑#1
正在进行远程调用的路由处理程序会记录上面的错误
var http = require('http');
var options = {
host: 'our_internal_host',
port: 9991,
path: '/analytics'
};
http.get(options, function(res) {
// removed response code
console.log(res);
}).on('error', function(e) {
console.log(e);
});
事实证明,我的Mac电脑的IP与其他机器位于不同的子网。您是否尝试从运行express应用程序的系统中卷曲url以验证其是否可访问?如果您可以验证它,您可以发布您用于执行请求的代码吗?我可以在shell中卷曲并获取数据。我会很快发布代码。是否涉及代理服务器?是的,我们有公司代理。以太网连接具有适当的代理设置。shell还具有从bashrc导出的http_代理和https_代理变量。