2016-08-11 3 views
3

Ich verwende diesen Code, um die Service-Bus-Warteschlange aus meiner node.js-Datei aufzurufen, die in Azure Worker Role ausgeführt wird.Azure SDK für Knoten JS funktioniert nicht in Azure-Worker Rolle

var azure = require('azure'), 
    config = require('./config'); 
var serviceBusClient = azure.createServiceBusService(config.sbConnection); 
console.log("Start"); 
serviceBusClient.getQueue("myqueue", function (error, queue) { 
    if(error){ 
     console.log(error); 
    } 
    console.log(queue); 
}); 
console.log("End"); 

In diesem Code Arbeiter Rolle log nur „Start“ und „Ende“ aber getQueue API nicht funktioniert und keine Fehler zu werfen und es funktioniert auf meinem lokalen Rechner in Ordnung und die Reaktion anzumelden.

Antwort

0

Ich habe in einem neuen Cloud-Dienst mit Ihrem Skriptcode node.js getestet und in Azure bereitgestellt. Und ich konfigurierte die .csdef Datei, um die Ausgabe in eine Protokolldatei zu leiten, wie: <ProgramEntryPoint commandLine="node.cmd .\worker.js &gt; sblog.txt" setReadyOnProcessStart="true" />, um die Ausgabe des Skripts node.js zu überprüfen.

Alles funktionierte gut auf meiner Seite. Können Sie bitte bestätigen, ob Sie Nachrichten in Ihrer Warteschlange haben und ob Sie bestimmte Konfigurationen in Ihrer .csdef Datei haben.

Update

Nach der Beschreibung bei https://azure.microsoft.com/en-us/documentation/articles/nodejs-specify-node-version-azure-apps/:

Wenn Sie Ihre Anwendung in einem Azure Cloud Service (Web oder Arbeiter Rolle) hosten und es ist das erste Mal, wenn Sie die Anwendung bereitgestellt haben Azure versucht, dieselbe Version von Node.js zu verwenden, die Sie in Ihrer Entwicklungsumgebung installiert haben, wenn sie mit einer der in Azure verfügbaren Standardversionen übereinstimmt.

Und wir können die verfügbare nodejs-Version im Cloud-Service über den Powershell-Befehl überprüfen: Get-AzureServiceProjectRoleRuntime. Die verfügbare Versionsliste ist: 0.6.17, 0.6.20, 0.8.4, 0.8.22, 0.8.26 und 0.10.21.

Wenn Sie Ihre benutzerdefinierte nodejs-Version verwenden möchten, können Sie den gesamten Anwendungsordner node.js in Ihre Cloud-Dienstanwendung packen. Ändern Sie die Datei node.cmd in Ihrer Cloud-Dienstanwendung, um den Pfad der Anwendung node.js in Ihrem Cloud-Servicepaket zu leiten.

+0

Ja-Meldungen sind in der Warteschlange zur Verfügung und hier ist mein .csdef Datei Code AvinashSachdewani

+0

ein weiterer Punkt Ich habe den Knoten verion in package.json geändert und diese Zeile hinzugefügt ("engines": {"node": "4.4.7", "iisnode": "*"}) Führen Sie dieses Cmdlet (Set-AzureServiceProjectRole WebRole1 Node 4.4.7) vor dem Veröffentlichen der Anwendung aus, aber wenn ich den Befehl (node ​​-v) in der Worker-Rolle ausführe, zeigt es 0.6.20 an. Welcher Knoten ist in der Anwendung installiert? – AvinashSachdewani

+1

Ist der Inhalt Ihr gesamter Inhalt in '.csdef'? Könnten Sie es schaffen, mit Visual Studio einen neuen Cloud-Service aufzubauen? –

Verwandte Themen