2016-09-16 3 views
0

Ich arbeite daran, meinen Azure Mobile Service in die neue Azure Mobile App zu konvertieren und die lokale Datenbank anzuzeigen. Ich habe von einem frischen Quickstart-Projekt gestartet und ich sehe, dass mein Connectionstring in Web.config ist:Wie stellen Sie eine Verbindung zu einer LocalDB für eine neue Azure Mobile App her?

<add name="MS_TableConnectionString" connectionString="Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-mobileapp-20160914123002.mdf;Initial Catalog=aspnet-mobileapp-20160914123002;Integrated Security=True;MultipleActiveResultSets=True" 
    providerName="System.Data.SqlClient" /> 

aber ich habe nicht die Datenbank überhaupt nicht sehen, wenn ich in der (localdb) aussehen \ MSSQLLocalDB Server im SQL Server-Objekt-Explorer. Ich benutze Visual Studio Community 2015 und habe meine Verbindung zu meiner lokalen Datenbank gelöscht und neu erstellt, aber immer noch kein Glück. Ich habe versucht, nach der .mdf-Datei mit dem gleichen Namen zu suchen, um zu sehen, ob ich sie zumindest manuell hinzufügen könnte, aber ich konnte sie nicht finden. Da das Projekt auf einem lokalen IIS-Server ausgeführt wird, gibt es eine Möglichkeit, die genaue Verbindungszeichenfolge zu sehen, die der Server verwendet.

Hier ist ein Screenshot meines SQL Server Explorer. Die einzige Datenbank, die ich sehe, ist AzureStorageEmulatorDb45 ...

Antwort

1

Die Verbindungszeichenfolge wird von Azure App Service mit der von Ihnen definierten tatsächlichen Verbindungszeichenfolge überschrieben. Sie können die Verbindungszeichenfolge immer aus dem Code abrufen. Es sieht aus wie Sie die ASP.NET Art von Azure Mobile-Apps verwenden, so dass der folgende Code wird die Verbindungszeichenfolge innerhalb eines TableController Initialize() -Methode Dump:

var connectionString = "MS_TableConnectionString"; 
var settings = Request.GetConfiguration() 
    .GetMobileAppSettingsProvider() 
    .GetMobileAppSettings(); 
ConnectionSettings connectionSettings; 
if (!settings.Connections.TryGetValue(connectionString, out connectionSettings)) 
{ 
    throw new ArgumentException($"Connection String {connectionString} not found", connectionString); 
} 
ConnectionString = connectionSettings.ConnectionString; 

Weitere Informationen zu Tabellen Controllern finden Sie im Kapitel in meinem Buch (in Bearbeitung): https://adrianhall.github.io/develop-mobile-apps-with-csharp-and-azure/chapter3/dataconcepts/

+0

Beim lokalen Testen bekomme ich wie erwartet die gleiche Verbindungszeichenfolge wie in meiner Web.config-Datei. Wenn ich mich jedoch mit der Datenbank (localdb) \ MSSQLLocalDB verbinde, sehe ich die Datenbank überhaupt nicht. Der Name der Datenbank sollte "aspnet-mobileapp-20160914123002" aus der Verbindungszeichenfolge sein. Wie kann ich die Mobile App-Datenbank lokal testen? – WiteCastle

+0

Ich bin mir nicht sicher, was passiert ist, aber ich kann jetzt die Datenbank sehen. Ich wähle diese Antwort, weil sie beantwortet, wie man die Verbindungsschnur erhält und das Buch ist sehr hilfreich und muss gelesen werden. – WiteCastle

Verwandte Themen