2

Wie kann ich zwei separate ASP.NET-Sites abrufen, in diesem Fall eine Website mit Entity Framework und Web Service, um dieselbe lokale Datenbank zu verwenden mdf & ldf?SQL Express-Benutzerinstanz mit mehreren ASP.NET-Sites

Ich schaute mich um und ich denke, dass diese Art von lokalen DB eine Benutzerinstanz genannt wird - zumindest so, wie ich es gerade benutze. Ich war mir nicht sicher, ob es funktionieren würde oder nicht, bis ich die untenstehenden Informationen von der MSDN Library finde und jetzt bin ich mir wirklich nicht sicher, ob es funktionieren wird.

Benutzerinstanz Szenarien umfassen:

...

Dedicated ASP.NET mit Windows Authentication Hosting. Eine einzelne SQL Server Express-Instanz kann in einem Intranet gehostet werden. Die Anwendung stellt mithilfe des ASPNET-Windows-Kontos eine Verbindung her, nicht mithilfe von Identitätswechsel. Benutzerinstanzen sollten nicht für Szenarios von Drittanbietern oder freigegebenen Hosts verwendet werden, bei denen alle Anwendungen dieselbe Benutzerinstanz verwenden und nicht länger voneinander isoliert bleiben.

Funktioniert das sofort ohne zusätzliche Konfiguration? Wenn ich versuche, eine DB zu jeder nachfolgenden Anwendung hinzuzufügen, bekomme ich einen Fehler in der Datei, wenn irgendetwas anderes die DB benutzt, was mich zu der Annahme verleitet, dass ich es nicht so machen kann. Allerdings, wenn ich die DB nicht verwendet, dann fügen Sie es, und dann starten Sie es, es scheint funktioniert gut. Hat jemand irgendeine Beruhigung für mich, dass es nicht beschädigt wird oder irgendwelche Fehler erfährt, indem man es so benutzt?

Vorzugsweise wird das MDF & LDF im Verzeichnis App_Data der Website (| DataDirectory |) gespeichert. Wenn ich es so mache, glaube ich nicht, dass ich die relative Adressierung für den Dienst zuverlässig verwenden kann, wenn ich es nicht in ein Unterverzeichnis für die Site lege, ist das korrekt?

bearbeiten: Ich benutze SQL Server Express, weil dies eine Aufgabe für die Schule ist, also muss ich es ziemlich verwenden. Wenn es einen Weg ohne Benutzerinstanz gibt, werde ich versuchen, ohne sie auskommen.

+0

Das ist eine heftige erste Frage Kumpel. Ich bin mir nicht sicher, ob Sie sich mit den 'internen' MDF/LDF-Dateien anlegen wollen. –

+0

Ian - danke für das Kompliment. – TylerHam

Antwort

1

Sie können User Instance dafür nicht verwenden. Dadurch kann jeweils nur ein Client eine Verbindung zu Ihrer Datenbank herstellen. Wenn Ihre beiden Anwendungen dieselben Anmeldeinformationen verwenden, erhalten Sie den von Ihnen beschriebenen Fehler. Wenn Ihre beiden Anwendungen unterschiedliche Anmeldeinformationen verwenden, erhalten Sie im Wesentlichen zwei separate Instanzen (auch nicht das, was Sie wollen).

Außerdem werden Benutzerinstanzen nur von SQL Server Express unterstützt. Ich weiß nicht, wie Ihre Produktionsumgebung aussieht, aber sie läuft wahrscheinlich nicht mit SQL Server Express?

Sie sollten AttachDBFilename in der Verbindungszeichenfolge Ihrer Webanwendung verwenden, um auf die lokale Datenbank zu verweisen: AttachDBFilename=|DataDirectory|\MyDB.mdf.

In Ihrem Webservice verwenden Sie auch AttachDBFilename, aber es hängt vom Bereitstellungsort des Webdienstes ab, auf den es verweisen soll.

+0

Danke. Ich habe geklärt, warum ich SQL Server Express verwende. Es ist für einen Schulauftrag. – TylerHam

+0

Ich habe am Ende gearbeitet, danke sowieso. – TylerHam