我能够在本地PC上完美运行以下代码。能够与服务器正确连接和通信的客户端应用程序。当我尝试使用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并用命名管道格式替换的行,但它也不起作用。有人请帮忙。谢谢!
答案 0 :(得分:0)
我假设Azure Server代表Azure Web App,因为在部署它时出现相同的错误。
出现错误消息是因为我们部署了TCP服务器,而Web应用程序应该是HTTP服务器,它可以处理HTTP请求并发送回响应,例如显示html页面。网络模块创建的TCP服务器不具备此功能。
我能够在本地PC上完美运行以下代码。
如果我使用node运行代码片段,它将起作用。
当我尝试在VS中将其作为Azure Nodejs Web应用程序运行时,我通过使用除process.env.port(1337)以外的指定端口(例如8080)来使它工作,没有此端口,则无法将其识别为Web应用程序这样浏览器中就不会启动任何Web服务器。
如果只想使用套接字连接,建议您使用socket.io module,它可以将套接字连接到HTTP服务器。
如果必须使用此TCP服务器,请查看this thread,尝试使用Azure云服务。