2016-06-13 16 views
0

Ich habe ein Problem beim Einrichten des Renderservers prerender.io https://github.com/prerender/prerender.git auf einer Azure-Website.prerender.io node.js prerender Server auf azurblau

Ich habe ein leeres Node.js Azure-Projekt in VS2015 erstellt, und der node.js-Server startet ordnungsgemäß und rendert Inhalt fein lokal.

Das Problem ist, wenn ich zu Azure stelle ich eine interne Server Störung erhalte, die das Folgende:

Application has thrown an uncaught exception and is terminated: 
Error: write ENOTSUP 
    at exports._errnoException (util.js:874:11) 
    at ChildProcess.target._send (internal/child_process.js:606:18) 
    at ChildProcess.target.send (internal/child_process.js:507:12) 
    at sendHelper (cluster.js:699:8) 
    at send (cluster.js:501:5) 
    at cluster.js:477:7 
    at SharedHandle.add (cluster.js:82:3) 
    at queryServer (cluster.js:469:12) 
    at Worker.onmessage (cluster.js:425:7) 
    at ChildProcess.<anonymous> (cluster.js:713:8) 

Aus dem Fehler, den ich dort nur vermuten kann ein Problem mit der Anforderung und Clustering-Mechanismus ist. Ich habe prerender.io per E-Mail geschickt, um zu sehen, ob sie einen Einblick haben, was passiert. Ich habe auch im Internet hoch und niedrig gesucht, kann aber keine ähnlichen Probleme finden, die ich als Referenz verwenden könnte.

Alle Standardeinstellungen für node.js-Projekte bleiben erhalten. Ich habe den Code prerender.io node.js nur in das vs2015-Projekt importiert. Wie ich schon sagte, es funktioniert lokal.

+0

kommuniziert das Prerender-Paket/die Middleware mit einem ihrer Server im Backend? Wenn dies der Fall ist, kann es zu Firewall- oder Konnektivitätsproblemen kommen. Ich vermute, dass Sie diese Website in azurblauen Web-Apps veröffentlichen. – Aravind

+0

Ich habe festgestellt, dass Cluster nicht von IISNode unterstützt wird, wie hier vom Autor von IISNode erwähnt. Hier ist eine GitHub Konversation über die Angelegenheit https://github.com/tjanczuk/iisnode/issues/195 –

Antwort

1

Nach meinen Tests konnte ich prerender.IO mit Powershell auf meiner lokalen und der Azure-Website ausführen.

ich das Paket installiert und verwendet, um den server.js Code wie folgt:

var prerender = require('./lib'); 

var server = prerender({ 
    workers: process.env.PRERENDER_NUM_WORKERS, 
    iterations: process.env.PRERENDER_NUM_ITERATIONS 
}); 


server.use(prerender.sendPrerenderHeader()); 
// server.use(prerender.basicAuth()); 
// server.use(prerender.whitelist()); 
server.use(prerender.blacklist()); 
// server.use(prerender.logger()); 
server.use(prerender.removeScriptTags()); 
server.use(prerender.httpHeaders()); 
// server.use(prerender.inMemoryHtmlCache()); 
// server.use(prerender.s3HtmlCache()); 

server.start() 

Dann entfaltet, ich dieses Projekt auf Azure Web App-Service. Ich habe die Server.js im Kudu-Panel mit der Powershell, wie dieses Bild: enter image description here

Andere Fragen, welche Version haben Sie verwendet? Ich verwendete node.js Version war V4.2.3.

+0

Hallo, haben Sie ihre Middleware oder den Renderserver ausgeführt? Ich habe versucht, den Renderserver auszuführen, und ich war auf Knoten 6.2. Ich hatte eine knappe Frist, um etwas für ein Projekt in die Wege zu leiten, also gingen wir zum VM-Weg, da ich keine Zeit hatte, das Open-Source-Projekt zu modifizieren. Interessanter Kommentar. –

1

haben Sie ihre Middleware oder den Renderserver ausgeführt? Ich habe versucht, den Renderserver auszuführen, und ich war auf Knoten 6.2. Ich war unter einer knappen Frist für ein Projekt etwas in Gang zu bringen und so gingen wir den VM Weg

Ihren Beitrag schätzen diese Sorge für die Züchtung, würde Ich mag, um zu bestätigen, dass Prerender derzeit nicht auf Azure Web-App unterstützt wird aufgrund prerender verwendet ein Cluster-Modul, das Named-Pipe-Verbindungen nicht unterstützt, während die Azure-Webanwendung Named-Pipe-Verbindungen verwendet, um iis mit node.exe zu verbinden. Wir werden uns weiter mit diesem Problem befassen und diesen Thread aktualisieren, sobald die Problemumgehung und Lösung gefunden ist. Bitte zögern Sie nicht mich zu informieren, wenn Sie weitere Bedenken haben.