In einer der Anwendungen, auf die ich mich bezog, wird die Verbindungszeichenfolge in AppSettings gespeichert! Bis jetzt habe ich die Verbindung im <connectionstring/>
Element gespeichert. Aber was ist der richtige Weg?
Also meine Frage ist, was sind die Unterschiede zwischen <connectionstrings>
und <appsettings>
in der web.config und gibt es bestimmte Gründe, warum ich Verbindungszeichenfolgen in Appsettings speichern sollte oder nicht? Gibt es Regeln / Richtlinien, denen Sie folgen sollten? Oder ist das komplett die Wahl des Entwicklers?
Es besteht ein grundlegender Unterschied zwischen connectionString
und appSettings
:
Sie suchen nach verschiedenen Dingen. In .NET 2.0 und höher:
Ein connectionString
-Objekt ist ein XML-Knoten, für den bestimmte Attribute festgelegt sind. und semantisch bezieht es sich auf eine Datenbankverbindungszeichenfolge.
Ein connectionString
sieht beispielsweise wie folgt aus:
Sie werden feststellen, dass es ein paar verschiedene Attribute hat:
name
connectionString
: Dies hat eine bestimmte Zeichenfolge drin, es braucht einen Initial Catalog
, einen Sicherheitsmechanismus (in diesem Fall Integrated Security
providerName
Während appSettings
nur ein benutzerdefiniertes Schlüssel / Wert-Paar ist, mit dem Sie ... nun ... Anwendungseinstellungen festlegen können. Es kann alles sein:
In vielen Fällen wäre es einfach ungerade , den connectionString in ein Schlüssel / Wert-Paar wie appSettings
(semantisch und programmgesteuert) zu schreiben. Sowie es würde es schwieriger machen Verschlüsseln Sie den connectionString, wenn Sie benötigen.
Dazu gibt es weitere Informationen in diesem Blogpost .
Soweit ich weiß, macht es keinen großen Unterschied, außer dass es an der "richtigen" Stelle ist - der Hauptvorteil des Einfügens von Verbindungszeichenfolgen in einen eigenen Abschnitt (Sie verschlüsseln Ihre Verbindungszeichenfolgen). richtig?) ist so können Sie diesen Abschnitt verschlüsseln ohne alle Einstellungen zu verschlüsseln, die Sie möglicherweise ändern möchten.
Verbindungszeichenfolgen werden im Allgemeinen im Element <connectionstring/>
gehalten ... und sind eine gute Richtlinie, da sie richtig benannt ist.
Manchmal verwenden Sie möglicherweise ein Steuerelement oder ein Benutzersteuerelement eines Drittanbieters, das in einem Schlüssel im <appsettings>
-Element nach der Verbindungszeichenfolge sucht. Das sollte die einzige Ausnahme zu der Richtlinie sein.
Sie können den Abschnitt appSettings verwenden, um Konfigurationseinstellungen für benutzerdefinierte Anwendungen über Projekte in .NET freizugeben.
Teilen benutzerdefinierter Anwendungskonfigurationseinstellungen über Projekte in .NET
Hinsichtlich der Bereitstellung gibt es einen signifikanten Unterschied zwischen ihnen. Wenn Sie Webpakete nach IIS importieren:
Das heißt, wenn es um die Bereitstellung geht, sollten Sie die Umgebungsparameter (Datenbank, Cache, AWS-Schlüssel / geheim usw.) in Verbindungszeichenfolgen einfügen. Es wird explizit zwischen dev / staging / prod-Umgebung unterschieden.