![]() |
ConnectionString aus Web.Config auslesen
In der Hilfe hab ich folgenden Code gefunden, um aus der web.Config Datei eines ASP.NET Projektes einen connectionstring auszulesen:
Code:
Es steht in der Hilfer weiterhin:
String str;
System.Configuration.Configuration rootWebConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(null); System.Configuration.ConnectionStringSettings connString; if (0 < rootWebConfig.ConnectionStrings.ConnectionStrings.Count) { connString = rootWebConfig.ConnectionStrings.ConnectionStrings[0]; if (null != connString) str = connString.ConnectionString; else str = @"n/a"; TextBox1.Text = rootWebConfig.FilePath + " "+ str; } Zitat:
Gebe ich mir aber den FilePath anschliessend an, so steht dadrin
Code:
Warum das :gruebel:
rootWebConfig.FilePath = "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\web.config"
|
Re: ConnectionString aus Web.Config auslesen
"Root config" ist in dem Fall die Config, die für die ganze Maschine gilt.
|
Re: ConnectionString aus Web.Config auslesen
OK.
Mit der Kenntnis klappts dann so bei mir:
Code:
Merci.
System.Configuration.Configuration WebConfig =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~"); |
Re: ConnectionString aus Web.Config auslesen
Ich bin nicht so der Webfritze, also etwas Rücksicht für eventuellen Blödsinn büdde: ;)
Normalerweise ist das Config-Modell von .Net so ausgelegt, dass man immer eine "zusammengeschobene" Ansicht auf alle Config-Daten bekommt. Also, du siehst die Dinge der Machine.config, der Config von benutzten Assemblies und natürlich deiner eigenen, alle zusammen als eine Config. Das sollte eigentlich auch für die Web.config in Unterordnern gelten. Wenn du die Werte der übergeordneten .config nicht haben willst, kannst du in dem Element an den Anfang ein ![]() |
Re: ConnectionString aus Web.Config auslesen
Durch Angabe von ~ in der OpenWebConfiguration Methode gebe ich, dass das webverzeichnis genommen werden soll. Dort liegt ja mein web.config.
Bei null nimmt er die datei aus dem Windows32 Verzeichnis. |
Re: ConnectionString aus Web.Config auslesen
Warum nicht einfach so?
Code:
ConnectionStringSettings connectionSettings = WebConfigurationManager.ConnectionStrings["Mööp"];
if(connectionsettings != null) { DbProviderFactory factory = DbProviderFactories.GetFactory(connectionSettings.ProviderName); using(DbConnection connection = factory.CreateConnection()) using(DbCommand command = connection.CreateCommand()) { connection.ConnectionString = connectionSettings.ConnectionString; ... } } |
Re: ConnectionString aus Web.Config auslesen
Weil "Mööp" kein valides Verzeichnis ist.
ConnectionStrings erwartet entweder null als Parameter oder einen Pfad zur web.config. Bei null wird eben im Windows Verzeichnis nach den config Files gesucht, und bei "~" im Webverzeichnis der Anwendung. Natürlich kannst du ein Unterverzeichnis "Mööp" anlegen, und dort alternative .config Files hinlegen. Dann dürfte deine Variante funktionieren. (ungetestet) |
Re: ConnectionString aus Web.Config auslesen
Nene, ich verwende die statische Eigenschaft ConnectionStrings direkt auf der Klasse WebConfigurationManager.
Dadurch bekomme ich den ConnectionStringBlabla mit dem angegebenen Namen, der in der aktuellen Ebene gültig ist. Hast du also in einem Unterverzeichnis einen anderen ConnectionString mit gleichem Namen in der web.config hinterlegt. wird dann dieser hergenommen. |
Re: ConnectionString aus Web.Config auslesen
Zitat:
Code:
und
ConnectionStringSettings connectionSettings = WebConfigurationManager.ConnectionStrings["Mööp"];
Code:
genau dasselbe! Oder?
System.Configuration.Configuration webConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
System.Configuration.ConnectionStringSettings connStr; connStr = webConfig.ConnectionStrings.ConnectionStrings["Mööp"]; |
Re: ConnectionString aus Web.Config auslesen
Zitat:
Mein Code gibt alle Einstellungen, relativ zur ausführenden Assembly. In ASPX 2.0 wird der Code jedes Ordners in eine eigene Assembly kompiliert, und somit kann eine Funktion[1] unterschiedliche Config Daten sehen, je nachdem von aus sie aufgerufen wird. [1]selbst wenn sie in einer referenzierten DLL liegt |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz