【问题标题】:Nodejs Client server sample not working on Azure serverNodejs 客户端服务器示例在 Azure 服务器上不起作用
【发布时间】:2019-01-08 03:08:27
【问题描述】:

我可以在本地电脑上完美运行以下代码。能够与服务器正确连接和通信的客户端应用程序。当我尝试使用 Visual Studio 2017 将代码发布到 Azure 时,它​​会失败并显示以下错误消息:

The page cannot be displayed because an internal server error has occurred.

代码

var net = require('net');

var port = process.env.port || 8000;
var tcp_server = net.createServer(function (socket) {
    socket.write('Joydip\n');
    socket.end('Kanjilal\n');
});
tcp_server.listen(8080);
//tcp_server.listen(port);

虽然我注释掉了监听 8080 的行并用命名管道格式替换它也不起作用。有人请帮忙。谢谢!

【问题讨论】:

    标签: node.js azure azure-web-app-service


    【解决方案1】:

    我假设 Azure Server 代表 Azure Web App,因为我在部署它时遇到了同样的错误。

    错误消息是预期的,因为我们部署了一个 TCP 服务器,而 Web 应用程序应该是一个 HTTP 服务器,它可以处理 HTTP 请求并发送回响应,例如显示一个 html 页面。而 net 模块创建的 TCP 服务器则不具备这种能力。

    我可以在本地电脑上完美运行以下代码。

    如果我使用节点运行代码 sn-p,它确实可以工作。

    当我尝试在 VS 中将它作为 Azure Nodejs Web 应用程序运行时,我通过使用指定的端口(如 8080)来工作,除了 process.env.port(1337),没有此端口它不会被识别为 Web 应用程序这样就不会在浏览器中启动任何 Web 服务器。

    如果你只想使用套接字连接,我建议你使用socket.io module,它允许你将套接字附加到 HTTP 服务器。

    如果你必须使用这个 TCP 服务器,看看this thread,尝试使用 Azure 云服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-11
      • 1970-01-01
      • 2016-08-06
      • 1970-01-01
      相关资源
      最近更新 更多