Je suis bloqué! Cela semble vraiment stupide mais je ne peux pas voir où je vais mal. Je crée un site Web 2.0 C# ASP.NET. Je suis en train d'utiliser une section personnalisée dans le fichier web.config avec:C# ConfigurationManager.GetSection n'a pas pu charger le fichier ou l'assemblage
DatabaseFactorySectionHandler sectionHandler = ConfigurationManager.GetSection("DatabaseFactoryConfiguration") as DatabaseFactorySectionHandler;
J'ai une DLL séparée pour les objets qui se trouvent dans l'espace de noms Bailey.DataLayer. Mais quand je lance la page test.aspx je reçois l'erreur suivante:
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"
La classe que je suis en train de faire est la suivante:
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);
}
}
}
}
}
Le fichier de configuration web a cette section:
<configSections>
<section name="DatabaseFactoryConfiguration"
type="Bailey.DataLayer.DatabaseFactorySectionHandler, Bailey.DataLayer" />
</configSections>
Je l'ai fait dans une application de console sans problème, mais je ne vois pas de différences, sauf qu'il s'agit d'une page Web.
EDIT
Tout compile et jette l'erreur lors de l'exécution alors je ne peux que supposer qu'il trouve l'ensemble car il est référencé dans la page test.aspx.cs.
je l'instruction using suivante en haut de la page test.aspx.cs:
using Bailey.DataLayer;
Voici l'ensemble du fichier web.config donc il n'y a pas de confusion:
<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>
Où se trouve la section de configuration personnalisée proprement dite? –
Eh bien, il y a votre problème ... Vous n'avez pas la section personnalisée. –
Il est là, mais je ne peux pas obtenir le XML du fichier de configuration pour afficher correctement, ou du tout maintenant! – Jon