Ich stecke fest! das scheint wirklich dämlich, aber ich kann nicht sehen, wo ich falsch liege. Ich erstelle eine 2.0 C# ASP.NET-Website. Ich versuche, einen benutzerdefinierten Abschnitt in der web.config-Datei zu verwenden mit:C# ConfigurationManager.GetSection konnte Datei oder Baugruppe nicht laden
DatabaseFactorySectionHandler sectionHandler = ConfigurationManager.GetSection("DatabaseFactoryConfiguration") as DatabaseFactorySectionHandler;
Ich habe eine separate DLL für die Objekte, die in Bailey.DataLayer Namensraum sind. Aber wenn ich die test.aspx Seite laufen bekomme ich folgende Fehlermeldung:
System.Configuration.ConfigurationErrorsException was unhandled by user code
Message="An error occurred creating the configuration section handler for DatabaseFactoryConfiguration: Could not load file or assembly 'Bailey.DataLayer' or one of its dependencies. The system cannot find the file specified. (C:\\Documents and Settings\\Administrator.PIP\\My Documents\\Visual Studio 2005\\WebSites\\bailey\\web.config line 13)"
Source="System.Configuration"
Die Klasse, die ich zu bekommen habe versucht, sich wie folgt:
namespace Bailey.DataLayer
{
public sealed class DatabaseFactorySectionHandler : ConfigurationSection
{
[ConfigurationProperty("Name")]
public string Name
{
get { return (string)base["Name"]; }
}
[ConfigurationProperty("ConnectionStringName")]
public string ConnectionStringName
{
get { return (string)base["ConnectionStringName"]; }
}
public string ConnectionString
{
get
{
try
{
return ConfigurationManager.ConnectionStrings[ConnectionStringName].ConnectionString;
}
catch (Exception excep)
{
throw new Exception("Connection string " + ConnectionStringName +
" was not found in web.config. " +
excep.Message);
}
}
}
}
}
Die Web-Konfigurationsdatei hat diesen Abschnitt:
Ich habe dies in einer Konsolen-App ohne ein Problem gemacht, aber kann keine Unterschiede sehen, abgesehen davon, dass es in einer Webseite ist.
EDIT
Es alle compiliert und den Fehler zur Laufzeit wirft, damit ich sie nur die Montage finden nehmen kann, weil sie in der test.aspx.cs Seite verwiesen wird.
Ich habe die folgende Anweisung am Anfang der Seite test.aspx.cs mit:
<configuration>
<configSections>
<section name="DatabaseFactoryConfiguration" type="Bailey.DataLayer.DatabaseFactorySectionHandler, Bailey.DataLayer" />
</configSections>
<appSettings/>
<connectionStrings>
<add name="BaileyMDFConString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\bailey.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />
</connectionStrings>
<DatabaseFactoryConfiguration Name="System.Data.SqlClient" ConnectionStringName="BaileyMDFConString" />
<system.web>
<compilation debug="true"/>
<authentication mode="Windows"/>
</system.web>
</configuration>
Wo ist der eigentliche benutzerdefinierte Konfigurationsabschnitt selbst? –
Nun, da ist dein Problem ... Du hast eigentlich keinen benutzerdefinierten Bereich. –
Es ist da, aber ich kann nicht das XML aus der Konfigurationsdatei korrekt oder überhaupt nicht angezeigt bekommen! – Jon