¿Cuáles son las cosas que Medium Trust le impide hacer? Por ejemplo, ya he aprendido que Medium Trust evita que use System.IO.Path.GetTempPath(). ¿Qué otras cosas así?¿Cuáles son las cosas más comunes y típicas para EVITAR la codificación en mi aplicación ASP.NET para que se ejecute bajo confianza media en un host compartido?
Respuesta
Aquí se explica cómo aprender y resolver problemas de confianza.
1) Busca en tu Windows \ Microsoft.NET \ Framework [SU VERSIÓN] \ carpetas de configuración para los archivos:
- web.config (este es el archivo de configuración de la raíz)
- web_mediumtrust.config
- web_hightrust.config
2) Cambiar el web.config decir
<trust level="Medium" originUrl="" />
3) Prueba tu ASP.NET aplicación El mío falló con un error de permiso.
4) Diff the web_mediumtrust.config y web_hightrust.config en una herramienta diff, como WinMerge.
5) Copie los ajustes de alto a medio uno a la vez y vea cómo afectan a su aplicación. En mi caso, el mensaje de error se refería a ConfigurationPermission, por lo que era fácil de diagnosticar.
Si puede precisar las líneas precisas en el archivo web_mediumtrust.config que lo están bloqueando, entonces tal vez pueda compartir eso con su compañía de alojamiento y tener una mejor oportunidad de resolverlo.
más documentación aquí:
http://msdn.microsoft.com/en-us/library/aa302425.aspx
@Oli, mi aplicación SE alojado en GoDaddy y tuve que hacer algunas soluciones de código cuando empecé a usar Lucene.NET. Tuve que modificar el código fuente de Lucene.NET para no usar GetTempPath y System.IO.FileInfo.
¿Quién puede estar seguro? Es por eso que debe desarrollar con un nivel de confianza de medio establecido en su web.config.
<trust level="Full|High|Medium|Low|Minimal" />
La mayoría de los hosts compartidos no utilizan un verdadero entorno de confianza media porque restringe algunas cosas que son demasiado importantes. Otros restringen algunas configuraciones adicionales por sus propios motivos anales.
Lo mejor que puede hacer es preguntarle a su host qué configuración usan para ASPNET. Pregunte por las especificaciones del nivel de confianza que están usando. Averigua los límites de memoria. Una vez que tenga esos detalles, podrá replicar el escenario a nivel local.
Si no te lo dicen, simplemente configura tu aplicación para que se ejecute en confianza media, pero (obviamente) no funcionará necesariamente si está utilizando un nivel de confianza modificado.
Aquí está some information on setting trust levels in IIS.
En general, el único problema que me he encontrado es: si está empujando ensamblajes, asegúrese de permitir solicitudes parcialmente confiables (es una metaetiqueta de ensamblaje); de lo contrario, no podrá usarlas.
He aquí un extracto de GoDaddy's Medium Trust information page:
aplicaciones que operan bajo un nivel de confianza medio no tienen acceso al registro, no tienen acceso al registro de eventos de Windows, y no se puede utilizar ReflectionPermission (pero puede utilizar la reflexión) . Tales aplicaciones solo pueden comunicarse con un rango definido de direcciones de red y el acceso al sistema de archivos está limitado a jerarquía de directorios virtuales de la aplicación .
Con un nivel de confianza medio impide aplicaciones tengan acceso compartido recursos del sistema y elimina el potencial para la aplicación interferencia. Agregar OleDbPermission y OdbcPermission permite que las aplicaciones utilicen esos proveedores de datos para acceder a las bases de datos . WebPermission se modifica para permitir el tráfico saliente de http y https .
Puede que no coincida exactamente con lo que tendrá que trabajar con su host (a menos que esté con GoDaddy), pero es un ejemplo típico.
¿Existe documentación en alguna parte que me mostraría cómo configurar un nivel de confianza medio en mi propio ordenador, a probar las cosas? Miré en MSDN y tuve problemas para encontrar ... –
Claro, acabo de agregar un enlace a la publicación. – Oli
Asegúrate de que las bibliotecas/frameworks de terceros (Castle viene a la mente) están compiladas (o pueden construirse) en confianza media.
La biblioteca system.runtime.serialization no está disponible por completo en la confianza media.
He codificado esto para json serialization/deserialization y descubrí por las malas. Tomó una semana conseguir que un asociado confirmara que las restricciones de confianza medianas tenían la culpa. Terminé cambiando compañías de hosting como resultado.
En confianza media, al menos en mi host, las llamadas P/INVOKE no están disponibles, es decir, usar [DLLImport]
para llamar a un componente COM no va a funcionar.
-Edoode
- 1. ¿Cuáles son las cosas más importantes para probar en una aplicación ASP.NET MVC?
- 2. ¿Cuáles son los errores más comunes que se deben evitar al codificar javascript para Internet Explorer?
- 3. ¿Cuáles son algunas cosas comunes a considerar al desarrollar una aplicación basada en web para venderse?
- 4. ¿Cuáles son las bibliotecas comunes para C?
- 5. C++: ¿cuáles son las vulnerabilidades más comunes y cómo evitarlas?
- 6. Qué COI se ejecuta en confianza media
- 7. ¿Cuáles son las cosas que más consume batería en una aplicación de iPhone?
- 8. ¿Qué es la confianza media en Asp.net?
- 9. Enviar correo electrónico en GMail SMTP bajo confianza media
- 10. ¿Cuáles son las mejores prácticas para evitar ataques xss en un sitio PHP
- 11. ¿Cuáles son las convenciones más comunes para usar espacios de nombres en Clojure?
- 12. Cómo determinar si la aplicación actual es de confianza media
- 13. ¿Cuáles son las cosas buenas de baba?
- 14. ¿Cuáles son tus optimizaciones sql más comunes?
- 15. ¿Cuáles son las dificultades más comunes de la sincronización basada en la marca de tiempo?
- 16. ¿Cuáles son las cosas más importantes que aprender acerca de la Programación Java?
- 17. ¿Cuáles son las dificultades más comunes para un usuario principiante de Drupal?
- 18. ¿Qué riesgo presenta la Reflexión? (Confianza media)
- 19. NHibernate 2.1.2 en confianza media
- 20. Bases bsd comunes más bajas que las de bajo nivel
- 21. ¿Cómo se configura el proceso asp.net para que se ejecute en una cuenta de dominio?
- 22. evitar que una aplicación C# ejecute más de una instancia
- 23. ¿Cuáles son los tamaños de fuente más comunes para las etiquetas H1-H6
- 24. ¿Cuáles son los patrones de diseño más comunes para cualquier aplicación de formularios de Windows?
- 25. ¿Cuáles son las configuraciones más comunes donde las escrituras del puntero no son atómicas?
- 26. ¿Cuáles son las alternativas de membresía ASP.NET?
- 27. ¿Cuáles son los requisitos previos para instalar una aplicación ASP.NET?
- 28. ¿Cuáles son las cosas interesantes y geniales que haces durante la automatización de compilación?
- 29. ¿Cuáles son las consultas de medios más importantes que se deben utilizar para crear un diseño de respuesta móvil?
- 30. Evitar que se ejecute la tarea en segundo plano dispatch_after()
Simplemente señalaré lo que probablemente sea obvio para todos los demás, pero tuve que comprobar solo asegurarme de que: debería ir en la sección , y que el atributo de nivel distingue entre mayúsculas y minúsculas, tan mayúscula "M", minúscula todo lo demás: S –