Was ist der Unterschied zwischen Connectionstrings und Appsettings?

8

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?

    
Neel 16.06.2010, 16:37
quelle

6 Antworten

10

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:

%Vor%

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:

%Vor%

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 .

    
VoodooChild 16.06.2010, 16:42
quelle
4

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.

    
Steven Robbins 16.06.2010 16:43
quelle
0

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.

    
Ed B 16.06.2010 16:42
quelle
0

Darüber hinaus können Verbindungsstrings in IIS7 über die entsprechende IIS7-Administration verwaltet werden.

    
flq 16.06.2010 16:48
quelle
0

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

    
Teoman shipahi 26.07.2013 04:21
quelle
0

Hinsichtlich der Bereitstellung gibt es einen signifikanten Unterschied zwischen ihnen. Wenn Sie Webpakete nach IIS importieren:

  • Verbindungszeichenfolgen werden automatisch in den Wizard-Dialog zur weiteren Parametrierung aufgenommen.
  • App-Einstellungen sind standardmäßig nicht vorhanden. Wenn Sie dies wirklich tun möchten, befolgen Sie die Schritte im Abschnitt "Benutzerdefinierte Parametrisierung - Anwendungseinstellungen in der Datei web.config" in Konfigurieren von Parametern für die Webpaketbereitstellung

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.

    
David Hu 24.06.2014 10:03
quelle

Tags und Links