AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke C# ConnectionString aus Web.Config auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

ConnectionString aus Web.Config auslesen

Ein Thema von Jelly · begonnen am 26. Apr 2007 · letzter Beitrag vom 26. Apr 2007
Antwort Antwort
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#1

ConnectionString aus Web.Config auslesen

  Alt 26. Apr 2007, 08:55
In der Hilfe hab ich folgenden Code gefunden, um aus der web.Config Datei eines ASP.NET Projektes einen connectionstring auszulesen:
Code:
        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;
        }
Es steht in der Hilfer weiterhin:
Zitat von Online Hilfe:
To obtain configuration settings for the root-level Web configuration, null is passed to the OpenWebConfiguration method.
Das heisst für mich, es wird die web.config Datei geladen, die auch in meinem Webverzeichnis liegt.
Gebe ich mir aber den FilePath anschliessend an, so steht dadrin
Code:
rootWebConfig.FilePath = "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\web.config"
Warum das
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#2

Re: ConnectionString aus Web.Config auslesen

  Alt 26. Apr 2007, 08:59
"Root config" ist in dem Fall die Config, die für die ganze Maschine gilt.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: ConnectionString aus Web.Config auslesen

  Alt 26. Apr 2007, 09:05
OK.
Mit der Kenntnis klappts dann so bei mir:
Code:
System.Configuration.Configuration WebConfig =
             System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
Merci.
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#4

Re: ConnectionString aus Web.Config auslesen

  Alt 26. Apr 2007, 09:24
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 <clear> einfügen.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#5

Re: ConnectionString aus Web.Config auslesen

  Alt 26. Apr 2007, 09:31
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.
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#6

Re: ConnectionString aus Web.Config auslesen

  Alt 26. Apr 2007, 09:55
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;
    ...
  }
}
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#7

Re: ConnectionString aus Web.Config auslesen

  Alt 26. Apr 2007, 10:04
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)
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#8

Re: ConnectionString aus Web.Config auslesen

  Alt 26. Apr 2007, 10:08
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.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#9

Re: ConnectionString aus Web.Config auslesen

  Alt 26. Apr 2007, 11:50
Zitat von Elvis:
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.
Aha. Demnach ist
Code:
ConnectionStringSettings connectionSettings = WebConfigurationManager.ConnectionStrings["Mööp"];
und
Code:
System.Configuration.Configuration webConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
System.Configuration.ConnectionStringSettings connStr;
connStr = webConfig.ConnectionStrings.ConnectionStrings["Mööp"];
genau dasselbe! Oder?
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#10

Re: ConnectionString aus Web.Config auslesen

  Alt 26. Apr 2007, 12:08
Zitat von Jelly:
Zitat von Elvis:
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.
Aha. Demnach ist
Code:
...
und
Code:
...
genau dasselbe! Oder?
Nope, gibst du ihm ~ als Ordner, wird er den Root deines VDirs nehmen.
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
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz