Verwendung eines Website-spezifischen ConnectionString mit einer DLL
-
03-07-2019 - |
Frage
Die Einrichtung:
Ich habe eine DLL, die eine ConnectionString verwendet, um eine Verbindung zu einer SQL -Datenbank herzustellen. Wenn ich die DLL zu meiner Website hinzufüge, muss ich den ConnectionString in mein Web.config hinzufügen, damit meine DLL ordnungsgemäß funktioniert (dies ist nach Design). Sobald ich es in das web.config füge, funktioniert alles gut (wie erwartet).
Das Problem:
Das Problem beginnt, wenn ich den ConnectionString in die ASP.NET -Anwendungseinstellungen meiner Website verschieben möchte, die in IIS> Standard -Website> Eigenschaften> ASP.NET -Registerkarte> Global Configuration bearbeiten ...> Verbindungsstring -Manager bearbeiten
Wenn ich es aus meinem Web.Config entferne und dort einsetzt, funktioniert meine DLL nicht. Wenn ich den ConnectionString irgendwo anders in meiner Website (und nicht von einer DLL) verwende, kann ich mit dieser Methode auf die Datenbank auf gut zugreifen, aber aus irgendeinem Grund kann meine DLL nur dann darauf zugreifen, wenn sie im web.config ist.
Die Frage:
Wie kann ich meine DLL dazu bringen, das ConnectionString zu verwenden, das im ASP.NET -Konfigurationseinstellungs -Verbindungsstring -Manager anstelle des web.config aufgeführt ist?
Lösung
Sie müssen nach dem Abschnitt aus den allgemeinen ASP.NET -Konfigurationseinstellungen suchen, die über die WebConfigurationManager -Klasse abgerufen werden können, anstatt nach einer Verbindungszeichenfolge über ConfigurationManager.ConnectionStrings zu suchen.
// Get the connectionStrings section.
ConnectionStringsSection connectionStringsSection =
WebConfigurationManager.GetSection("connectionStrings")
as ConnectionStringsSection;
// Get the connectionStrings key,value pairs collection.
ConnectionStringSettingsCollection connectionStrings =
connectionStringsSection.ConnectionStrings;
// Get the collection enumerator.
IEnumerator connectionStringsEnum =
connectionStrings.GetEnumerator();