SecurityException en la aplicación ASP.net
-
11-07-2019 - |
Pregunta
Tengo una aplicación web que consulta un índice de Lucene y funciona bien en un servidor W2K3 en mi red. Ahora obtuve mi código azul, así que quería probar el servicio cargando la aplicación. Para hacerlo, tuve que instalar Vista (lo hice en una máquina virtual) porque el SDK de Azure no se instalará en una caja de XP.
Creé mi servicio en la nube, agregué los archivos desde mi aplicación, pero cuando lo ejecuto (solo F5) obtengo una SecurityException, cuando llamo a Lucene para consultar el índice, diciendo:
La aplicación intentó realizar una operación no permitida por el politica de seguridad. Para conceder esto solicitud del permiso requerido por favor contacte a su sistema administrador o cambiar el nivel de confianza de la aplicación en el archivo de configuración.
He estado buscando en Google y las soluciones que he encontrado se refieren a modificar el archivo machine.config, que es algo que no podré hacer "en la nube".
¿Alguien podría ayudar en esto?
Solución
Ok, en caso de que alguien enfrente los mismos problemas, esta es la respuesta correcta que obtuve del foro de Azure:
Esto se debe a la política de confianza para el CTP de Windows Azure. los Las variables de entorno TEMP y TMP son disponible y configurado adecuadamente. Sin embargo, System.IO.Path.GetTempPath y System.IO.GetTempFile no funcionan ya que requieren sin restricciones permisos ambientales. me gustaría sugiero que contactes con el Lucene desarrolladores para ver si pueden modificar el código para que se ejecute correctamente en medio entornos de confianza.
Gracias a Daniel C. Wang por la respuesta.
Otros consejos
También encontré una pregunta con respecto a mi mismo problema y cómo se solucionó.
Aquí el enlace: ??Lucene. Net falla en mi host porque llama a GetTempPath (). ¿En qué consiste el trabajo?
Puede cambiar la confianza en web.config, a menos que se haya deshabilitado en machine.config (que a menudo se encuentra en un alojamiento compartido). dentro de su puesto y ver qué pasa.
Si no se le permite hacer eso, vea si puede obtener su GACd de control hablando con su proveedor. Si eso no funciona, lamento decirlo, pero no tienes suerte. A veces puede encontrar soluciones alternativas que no requieren plena confianza para un método específico, pero si un dll de terceros lo requiere, no hay mucho que pueda hacer
No he hecho esto, pero ¿no es posible tener una versión de escritorio del entorno operativo en vivo? Esto parecería un buen comienzo para la resolución de problemas.