the read net leer from asp applicationsettings app asp.net web-config

asp.net - net - read applicationsettings from the web config file c#



Agregando referencia de ensamblaje dentro de web.config (3)

Tengo algunas preguntas generales sobre web.config y cómo funciona con respecto a la referencia de ensamblaje. He estado jugando con el nuevo motor de Razor View y tuve algunos problemas para ponerlo en funcionamiento.

Mi problema comenzó con un general.

El tipo o nombre de espacio de nombres ''XXXXX'' no existe en el espacio de nombres ''XXXXX'' (¿falta una referencia de ensamblado?)

Ahora pensé que esto era solo una simple Agregar referencia al proyecto y que estaría en camino. Pero incluso después de agregar una referencia al ensamblaje faltante, mi proyecto se rompió.

Encontré la solución y tuve que agregar una referencia de ensamblaje dentro de web.config. Una vez que hice esto todo funcionó bien.

En primer lugar , quiero entender por qué fue necesario agregar una referencia a web.config para solucionar este problema. ¿Por qué una referencia de proyecto no era lo suficientemente buena?

Segundo , cuando se trata de agregar referencias en web.config, me gustaría entender la sintaxis. Cuando veo un marcado como este

<add assembly="System.Web.WebPages" />

Me parece muy claro que estoy agregando un ensamblaje llamado System.Web.WebPages. Pero la sintaxis completa en mi web.config es

<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

La versión parece autoexplicativa, pero ¿para qué se utiliza la cultura y PublicKeyToken? ¿Se requieren? ¿Qué pasa si no conozco a ninguno de ellos, puedo poner algo?


Respondiendo a tu primera pregunta:

Hay otra pregunta SO aquí con una respuesta útil:

¿Cuál es la diferencia entre el elemento de ensamblajes web.config y el elemento de referencia del archivo de proyecto?

Esencialmente, tiene que ver con las diferencias entre los proyectos web y los proyectos no web en Visual Studio (como yo lo entiendo).

Respondiendo a tu segunda pregunta:

Esto llevó bastante tiempo de excavación, pero aquí tienes:

Cultura : la mayoría de los ensamblajes deben ser neutrales con la cultura (suponiendo que esto esté establecido en la aplicación). Sin embargo, si tiene ensamblajes sensibles a la cultura, aquí es donde se especifica la cultura del ensamblaje.

PublicKeyToken : esta es la clave pública del par de claves pública / privada que se usó para firmar el ensamblaje. Tener esto permite a .NET verificar que el ensamblaje que está cargando es el correcto.

Más información útil aquí:

http://en.wikipedia.org/wiki/.NET_assembly


Todo el mundo parece estar dando la vuelta con esta respuesta. Es sencillo:

<configuration> <system.web> <compilation debug="true" strict="false" explicit="true" targetFramework="4.0"> <assemblies> <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> </assemblies> </compilation> </system.web> </configuration>


Una pregunta antigua, ya contestada, pero la encontré y quise agregar:

La importancia de un token de clave pública es que es absolutamente necesario para un ensamblaje con nombre seguro. De hecho, así es como se obtiene un PKT: firme el ensamblaje (genere una clave de nombre seguro). Y no puede almacenar un ensamblaje en el GAC sin haberlo firmado.

Así que es más que solo una cuestión de identificar el ensamblaje ... es una forma criptográfica de .NET para validar la firma de un ensamblaje y garantizar que no se haya manipulado.