2017-08-28 63 views
1

我在Windows上有一個Azure Web應用程序,它運行iisnode與我的Node應用程序進行通信,並且我得到一個1001錯誤的500錯誤。似乎IIS似乎沒有得到Node的響應。我在應用程序設置下設置了NODE_ENV和PORT變量。爲了最大限度地減少這些變量,我也將其解壓縮到Node Hello World應用程序中。正如我所知,Node會提取PORT變量並啓動使用正確的端口,因爲我看到std out指出應用程序是從指定的端口開始的。但是,當我嘗試任何請求時,Node永遠不會實際接收來自iisnode的請求。如果我嘗試使用console.log消息,並且沒有看到任何異常,那麼我就不會收到任何異常,如果它處於事件的響應方面,我會期望這種異常。我有其他應用程序服務設置相同的方式,似乎工作正常。我嘗試從其中一個部署代碼,並獲得相同的行爲。Node.js Azure Web應用程序Windows 500.1001錯誤

我嘗試使用下面的代碼爲最基本的測試

var http = require('http'); 

    // Configure our HTTP server to respond with Hello World to all requests. 
    var server = http.createServer(function (request, response) { 
     console.log('Getting Response'); 
     response.writeHead(200, {"Content-Type": "text/plain"}); 
     response.end("Hello World\n"); 
    }); 

    var port = process.env.PORT || '3003'; 
    server.listen(port); 

    // Put a friendly message on the terminal 
    console.log("Server running on port " + port); 

我得到的迴應Server running on port 8080,這使我相信在服務器啓動了罰款。不過,我只是在瀏覽器中獲得友好的500.1001響應。從我的角度來看,什麼可能會導致這種情況的想法與我們正在運作的許多其他網站一樣?

回答

0

Azure Web Apps僅支持端口80的HTTP和端口443的HTTPS流量。爲避免此錯誤,您需要從應用程序設置中刪除PORT變量設置,因爲Azure已通過變量process.env.PORT中的端口,它不是真正的端口號,而是像\\.\pipe\(guid...)這樣的管道。請參閱Node Js RestFull API on Azure,Returns HTTP Error 500.1001 - Internal Server Error

+0

所以這個工作,但這是最近的變化?我不確定爲什麼我的所有其他Web應用程序都是以相同的方式指定節點端口。基本上,我不確定現在這些其他的工作。 –

相關問題