Estoy trabajando con el programador de DotNetNuke para programar tareas y estoy buscando obtener la ruta del archivo físico de una plantilla de correo electrónico que creé. El problema es que HttpContext es NULL porque la tarea programada tiene un hilo diferente y no hay una solicitud http. ¿Cómo harías para obtener la ruta física del archivo?En ASP.NET, ¿cómo obtiene la ruta del archivo físico cuando HttpContext.Current es NULL?
Respuesta
System.Web.Hosting.HostingEnvironment.MapPath es lo que estás buscando. Siempre que esté utilizando el Servidor o HttpContext.Proyectos actuales, verifique primero si el HostingEnvironment tiene lo que necesita.
Dado que este proceso es realmente fuera de banda en relación con el sitio web, tal vez simplemente puede poner la ruta en un archivo de configuración.
Puede que no sea la mejor idea, pero es una alternativa.
¿qué dice esto.GetType(). Assembly.Location?
Devuelve c: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Archivos temporales ASP.NET \ mywebsite \ 50f1a686 \ ab5b581d \ App_Code.xkcsxvg6.dll – John
¿Puede usted mirar la Asamblea & los caminos base de código como este:
Imports System.Reflection
Imports System.IO
...
Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase)
Ese tipo de cosas no siempre funciona, así que lo que recomendaría hacer es escribir un registro con un montón de datos sobre la asamblea, para ver qué funciona en esta ubicación. Es lo que tuve que hacer para obtener algo similar cuando estaba creando un componente COM para alojar en AppCenter. Utilicé esto para "obtener" lo que debería ser "APP_BASE", y configurar eso para que el archivo app.config se cargue correctamente.
Log.Write (Assembly.GetExecutingAssembly().CodeBase)
Log.Write (Assembly.GetExecutingAssembly().Location)
Log.Write (Path.GetFullPath("."))
Log.Write (Application.StartupPath)
... and so on, whatever you can think of ...
Hay muchas maneras de hacerlo, yo personalmente lo soluciono almacenando información de ruta como una opción de configuración para mis módulos, no es elegante, pero funciona y funciona todo el tiempo.
Joe Brinkman Creo que en algún lugar tiene una publicación de blog sobre cómo construir un nuevo HTTPContext para usar dentro del planificador.
Para lectores futuros, los artículos de Joe Brinkman son [aquí, para la versión original] (http://www.dnnsoftware.com/community-blog/cid/135304/the-quest-for-the-dotnetnuke-holy-grail) y [aquí para obtener una versión actualizada] (http://www.dnnsoftware.com/community-blog/cid/137009/new-and-improved-holy-grail). – AaronSieb
- 1. mapa la ruta del archivo físico en asp.net mvc
- 2. HttpContext.Current es nulo cuando se utiliza async
- 3. ASP.NET MVC Obtiene el archivo de ruta de acceso virtual
- 4. Sql SMO: ¿Cómo obtener la ruta del nombre de archivo físico de la base de datos?
- 5. Obtiene que contiene la ruta del archivo lua
- 6. Obtener ruta de archivo físico de cualquier base de datos
- 7. Obtener la ruta del archivo en ASP.NET y XDocument.Load
- 8. C# ASP.NET: cómo acceder al caché cuando no hay HttpContext.Current disponible (es nulo)?
- 9. ¿Cómo accedo a HttpContext.Current en Task.Factory.StartNew?
- 10. Uso de HttpContext.Current en ASP.NET WebAPI
- 11. Ruta del mapa del archivo local ASP.NET/MVC
- 12. asp.net FileUpload.FileName devuelve la ruta completa, es decir, cuando no es necesario
- 13. (Físico) (Instalado) ruta de acceso DLL instalada en el GAC
- 14. Eclipse: ¿Obtiene la ubicación del archivo actual?
- 15. Asp.net System.Web.HttpContext.Current.Session null en global.asax
- 16. HttpContext.Current es nulo en mi servicio web
- 17. Desinfectar la ruta del archivo en PHP
- 18. ¿Obtiene el valor del boundfield oculto? ASP.NET
- 19. ¿Cómo encontrar la ruta del archivo app.config activo?
- 20. Ruta del archivo/nombre de InputStream
- 21. Android obtiene una ruta a la imagen desde la miniatura?
- 22. Diferencia entre HttpContext.Current y Controller.Context en MVC ASP.NET
- 23. ¿Cómo ocultar la ruta del archivo en la URL?
- 24. asp.net Después de un Server.Transfer, ¿cómo obtiene la ruta de acceso de la página actual?
- 25. ¿Convertir la ruta del archivo a un archivo URI?
- 26. Ruta del archivo de propiedades en java
- 27. .NET Remoting y HttpContext.Current
- 28. apego PHPMailer, hacerlo sin un archivo físico
- 29. Descargar el archivo EXCEL desde la página ASP.NET sin Generar archivo físico en el servidor (On The Fly)
- 30. ruta del archivo como argumento ruta MVC
¿Qué sucede si está fuera de un proyecto web pero desea digamos, vaya a la carpeta de imágenes de su proyecto web para tomar una imagen o para leer, digamos un contenido de un archivo .htm que contenga sitios en su sitio web, pero ¿tiene un método de utilidad al que desea llamar para obtener ese archivo? – PositiveGuy
Si se encuentra fuera del proyecto web, creo que necesitará su propio código personalizado para ubicar el proyecto web de todos modos. Una vez que tienes eso, puedes seguir ese camino sin ayuda especial como 'MapPath'. – bdukes