C# ConfigurationManager.GetSection n'a pas pu charger le fichier ou l'assembly

Je suis coincé! cela semble vraiment idiot mais je ne peux pas voir où je vais mal. Je suis entrain de créer un 2.0 C# ASP.NET site web. Je suis en train d'utiliser une section personnalisée sur le web.fichier de configuration:

DatabaseFactorySectionHandler sectionHandler = ConfigurationManager.GetSection("DatabaseFactoryConfiguration") as DatabaseFactorySectionHandler;

J'ai une DLL pour les Objets qui sont dans Bailey.DataLayer espace de noms. Mais quand je lance le test.page aspx j'obtiens 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 j'essaie de le faire est comme suit:

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 de cette section:

<configSections>
  <section name="DatabaseFactoryConfiguration" 
           type="Bailey.DataLayer.DatabaseFactorySectionHandler, Bailey.DataLayer" />
</configSections>

J'ai fait ça dans une application console sans problème, mais ne voit pas de différences hormis qu'il soit dans une page web.

MODIFIER

Tout compile et lance l'erreur à l'exécution, donc je ne peux que supposer qu'il trouver de l'assemblée car il est référencé dans le test.aspx.cs page.

J'ai le texte suivant à l'aide de déclaration au sommet de l'épreuve.aspx.cs page:

using Bailey.DataLayer;

Ici est tout le web.fichier de configuration, 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ù est le réel de configuration personnalisé l'article lui-même?
Et bien c'est votre problème... Vous n'avez pas réellement la section personnalisée.
Il est là, mais je ne peux pas obtenir le XML du fichier de configuration pour afficher correctement, ou à tout maintenant!
Personnalisé configs sont une douleur dans le cul, surtout quand ils ne sont pas tout à fait raison... Ma suggestion est d'ajouter des points d'arrêt PARTOUT!
J'ai la pause sur le point d'être créé, appuyez sur F11 pour l'étape en elle, et j'ai l'ConfigurationErrorsException a été gérée, en disant Bailey.DataLayer n'a pas pu être chargé! GRRRRR.. je vous remercie pour votre aide Andrew

OriginalL'auteur Jon | 2009-01-16