¡Estoy atascado! esto parece realmente tonto, pero no puedo ver dónde me estoy equivocando. Estoy creando un sitio web 2.0 C# ASP.NET. Estoy tratando de utilizar una sección personalizada en el archivo web.config con:C# ConfigurationManager.GetSection no pudo cargar el archivo o el ensamblaje
DatabaseFactorySectionHandler sectionHandler = ConfigurationManager.GetSection("DatabaseFactoryConfiguration") as DatabaseFactorySectionHandler;
que tienen una DLL separada para los objetos que se encuentran en Bailey.DataLayer espacio de nombres. Pero cuando corro la página test.aspx me sale el siguiente error:
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 clase que yo estoy tratando de conseguir es el siguiente: el archivo de configuración
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);
}
}
}
}
}
La web tiene esta sección:
<configSections>
<section name="DatabaseFactoryConfiguration"
type="Bailey.DataLayer.DatabaseFactorySectionHandler, Bailey.DataLayer" />
</configSections>
He hecho esto en una aplicación de consola sin ningún problema, pero no veo ninguna diferencia aparte de estar en una página web.
EDITAR
Todo se compila y lanza el error en tiempo de ejecución por lo que sólo puedo asumir que encontrar el montaje porque se hace referencia en la página test.aspx.cs.
tengo la siguiente instrucción using en la parte superior de la página test.aspx.cs:
using Bailey.DataLayer;
Aquí es todo el archivo web.config para que no haya confusión:
<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>
¿Dónde está la propia sección de configuración personalizada? –
Bueno, ahí está tu problema ... En realidad, no tienes la sección personalizada. –
Está allí, pero no puedo obtener el XML del archivo de configuración para mostrarlo correctamente, o ¡ahora mismo! – Jon