Okt 102008
 

Das hat jetzt einiges an Nerven gekostet. Eigentlich sollte ich nur ein Release-Build machen und das einchecken. Aus lauter gewohnheit habe ich dann mal die EXE-Datei gestartet und musste feststellen das die Anwendung nicht wollte. Wie so nicht? Na ja, dass galt es nun rauszufinden.

Also stellte ich die Konfiguration auf Debug und drückte F5. Die Anwendung startete ohne Fehler. Ein Doppelklick auf die EXE oder ein CTRL+F5, die Anwendung wollte nicht. 🙁

Zuerst prüfte ich dann mal alle Verzeichnisse auf einen Schreibschutz. Es war nichts schreibgeschützt.

Da ich nur eine allgemeine Fehlermeldung bekam, die leider nichts sage wo was passierte, musste ich mich mühsam durchsuchen bis ich dort war wo es bum machte. Ich konnte ja nicht debuggen. Mit der MessageBox.Show(“Hallo x”) schaute ich wo es noch tat.

Nach einiger Zeit landete ich hier.

Jetzt konnte ich alles in ein try{} catch() Block packen und schauen was genau der Fehler war.

System.TypeInitializationException: Der Typeninitialisierer für

"System.Data.SqlClient.SqlConnection" hat eine Ausnahme verursacht.

—> System.TypeInitializationException: Der Typeninitialisierer für

"System.Data.SqlClient.SqlConnectionFactory" hat eine Ausnahme verursacht.

—> System.TypeInitializationException: Der Typeninitialisierer für

"System.Data.SqlClient.SqlPerformanceCounters" hat eine Ausnahme

verursacht.

—> System.Configuration.ConfigurationErrorsException: Das

Konfigurationssystem konnte nicht initialisiert werden.

—> System.Configuration.ConfigurationErrorsException: Unbekannter

Konfigurationsabschnitt "lag.wordplus". (P:\ProjectX\WP.config line 8)

   bei System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean

ignoreLocal)

   bei

System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors

schemaErrors)

   bei System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()

   bei System.Configuration.ClientConfigurationSystem.EnsureInit(String

configKey)

   — Ende der internen Ausnahmestapelüberwachung —

   bei System.Configuration.ConfigurationManager.PrepareConfigSystem()

   bei System.Configuration.ConfigurationManager.GetSection(String

sectionName)

   bei

System.Configuration.PrivilegedConfigurationManager.GetSection(String

sectionName)

   bei System.Windows.Forms.WindowsFormsSection.GetSection()

   — Ende der internen Ausnahmestapelüberwachung —

   bei System.Data.SqlClient.SqlConnectionFactory..cctor()

   — Ende der internen Ausnahmestapelüberwachung —

   bei System.Data.SqlClient.SqlConnection..cctor()

   — Ende der internen Ausnahmestapelüberwachung —

   bei System.Data.SqlClient.SqlConnection..ctor()

   bei System.Data.SqlClient.SqlConnection..ctor(String connectionString)

   bei LAG.WordPlus.Database.SqlDatabase.CreateConnection(String

connectionString) in P:\ProjectX\SqlDatabase.cs:Zeile 23.

Scheinbar wurde der Konfigurationsabschnitt “lag.wordplus” nicht gefunden. Den gibt es aber. Ganz sicher.

Der Unterschied zwischen CTRL+F5 und F5:

CTRL+F5: AppDomain.CurrentDomain.SetupInformation.ConfigurationFile == ANWENDUNGSNAME.config

F5: AppDomain.CurrentDomain.SetupInformation.ConfigurationFile == ANWENDUNGSNAME.vshost.exe.config

Das brachte mich dann auf die Idee die App.config genauer anzuschauen.

Ich fand dort folgendes.

<!– <configSections>

    <section name="lag.wordplus"

type="LAG.WordPlus.Configuration.WordPlusSection, LAG.WordPlus" />

  </configSections> –>

Na ja, was soll ich sagen. <!– –> weg und es tut.

Und wieder um eine Erfahrung reicher. 🙂

Sorry, the comment form is closed at this time.