2017-06-15 2 views
-1

Ich habe eine NodeJS App auf Azure. Es funktioniert mit der Basis-URL (http://membershipwebapp.azurewebsites.net) und ich bekomme die erwarteten Ergebnisse. Das Problem tritt auf, wenn ich versuche, eine Datenbankabfrage auszuführen, z. B. http://membershipwebapp.azurewebsites.net/counties. Wenn ich das ausführe, bekomme ich "Die Seite kann nicht angezeigt werden, weil ein interner Serverfehler aufgetreten ist."Azure NodeJS App funktioniert nicht

Ich bin zu meiner Ausgabekonsole gegangen und sehe nur eine Verwarnungswarnung.

Ich kann eine Verbindung zur Datenbank in SSMS herstellen. Wenn ich meine Anwendung lokal ausführe und zu http://localhost:1337 gehe, bekomme ich "localhost weigerte sich zu verbinden".

Hier ist die config in meiner App:

var config = { 
      server: 'servername.database.windows.net', 
      database: 'myDatabase', 
      user: 'user', 
      password: 'password', 
      port: 1433 
     }; 

var sql = require("mssql"); 
var connection = new sql.Connection(config); 
+0

Ist Ihre Datenbank dort und verfügbar? Verwenden Sie die richtige Verbindungszeichenfolge? Was passiert, wenn Sie die Anwendung lokal ausführen, während Sie die Azure-Datenbank als Ziel haben? –

+0

Ich kann eine Verbindung zur Datenbank von SSMS herstellen. – raginggoat

+0

Die Tatsache, dass Sie eine Verbindung mit der Datenbank herstellen können, bedeutet nicht, dass sie für Ihre Anwendung in Azure verfügbar ist;) Wo ist die Datenbank? Hat die Web App Zugriff auf die Datenbank? Verwenden Sie in Ihrer Anwendung die richtige Verbindungszeichenfolge? Was passiert, wenn Sie die Anwendung lokal ausführen, während Sie die Azure-Datenbank als Ziel haben? –

Antwort

1

Für einen internen Server-Fehler, können Sie sdtout und sterr Protokolle für eine Node.js App auf Azure App-Dienst zu aktivieren, um zu sehen, was Protokolle sagen. Informationen dazu finden Sie unter How to enable BLOB-logging for a Node.js Api App on Azure?

Um eine Verbindung zur Azure SQL-Datenbank mithilfe von mssql moudle herzustellen, müssen wir encrypt: true in Optionen hinzufügen.

var config = { 
    server: 'servername.database.windows.net', 
    database: 'myDatabase', 
    user: 'user', 
    password: 'password', 
    port: 1433, 

    options: { 
     encrypt: true // Use this if you're on Windows Azure 
    } 
} 

auch feststellen, dass, wenn Sie Azure SQL-Datenbank von Ihrem lokalen Computer zuzugreifen, müssen Sie die IP-Adresse des Computers hinzuzufügen IPs Liste wie unten über die Azure portal zu dürfen.

enter image description here

Verwandte Themen