Frage

Wie kann ich zwei separate ASP.NET -Sites erhalten, in diesem Fall eine Website, die Entity Framework und Webdienst verwendet, um dieselbe lokale Datenbank MDF & LDF zu verwenden?

Ich habe mich umgesehen und denke, dass diese Art von lokaler DB als Benutzerinstanz bezeichnet wird - zumindest so wie ich sie gerade benutze. Ich war mir nicht sicher, ob es funktionieren würde oder nicht, bis ich die folgenden Informationen aus dem fand MSDN -Bibliothek Und jetzt bin ich mir wirklich nicht sicher, ob es funktionieren wird.

Zu den Benutzerinstanzszenarien gehören:

...

Dediziertes ASP.NET -Hosting mithilfe der Windows -Authentifizierung. Eine einzelne SQL Server Express -Instanz kann auf einem Intranet gehostet werden. Die Anwendung verbindet mithilfe des ASPNET -Windows -Kontos, nicht mithilfe der Identitätswechsel. Benutzerinstanzen sollten nicht für Drittanbieter- oder gemeinsam genutzte Hosting-Szenarien verwendet werden, in denen alle Anwendungen dieselbe Benutzerinstanz teilen und nicht mehr voneinander isoliert bleiben würden.

Funktioniert dies sofort ohne zusätzliche Konfiguration? Wenn ich versuche, jeder aufeinanderfolgenden Anwendung eine DB hinzuzufügen, erhalte ich eine Datei in Gebrauchsfehler, wenn etwas anderes das DB verwendet, was mich zu der Annahme veranlasst, dass ich es nicht so machen kann. Wenn ich jedoch verhindern, dass die DB verwendet wird, fügen Sie sie hinzu und starten Sie sie dann, es scheint gut arbeiten. Hat jemand eine Sicherheit für mich, dass es nicht beschädigt wird oder Fehler erlebt, indem er es so verwendet?

Vorzugsweise würde das MDF & LDF im app_data -Verzeichnis der Website (| Datadirectory |) gespeichert. Wenn ich es so mache, denke ich nicht, dass ich die relative Adressierung für den Dienst zuverlässig verwenden kann, es sei denn, ich stelle ihn in ein Sub -Verzeichnis für die Website, ist das richtig?

bearbeiten: Ich verwende SQL Server Express, da dies eine Aufgabe für die Schule ist, daher muss ich sie so ziemlich verwenden. Wenn es ohne Benutzerinstanz einen Weg gibt, werde ich versuchen, darauf zu verzichten.

War es hilfreich?

Lösung

Sie können nicht verwenden User Instance dafür. Dies ermöglicht nur einen Client jeweils, eine Verbindung zu Ihrer Datenbank herzustellen. 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 auf SQL Server Express unterstützt. Ich weiß nicht, wie Ihre Produktionsumgebung aussieht, aber sie wird wahrscheinlich nicht auf SQL Server Express ausgeführt?

Du solltest benutzen AttachDBFilename In der Verbindungszeichenfolge Ihrer Webanwendung verweist auf die lokale Datenbank: AttachDBFilename=|DataDirectory|\MyDB.mdf.

In Ihrem Webdienst verwenden Sie auch AttachDBFilename Es hängt jedoch vom Bereitstellungsort des Webdienstes ab, auf den er verweist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top