2011-01-20 21 views
13

tengo un código que funciona bien cuando tengo que borrar algunos archivos de imagen desde un directorio en mi servidor web:Cómo utilizar Server.MapPath cuando HttpContext .Current es nada

Dim ImageURL As String = dsImages.Tables(0).Rows(iImgRow).Item("ImageURL") 
Dim physicalName = Server.MapPath(ImageURL) 
oUpload.DeleteFileFromServer(physicalName, iAdid, iImgID) 

..pero yo soy corriendo en un problema cuando una tarea de mantenimiento que se ejecuta en un hilo separado a intervalos establecidos determina que archivos como la necesidad anteriormente que se eliminarán:

Dim ImageURL As String = dsImage.Tables(0).Rows(i - 1).Item("ImageURL") 
Dim iImgID As Integer = dsImage.Tables(0).Rows(i - 1).Item("ImageId") 
Dim physicalName As String = HttpContext.Current.Server.MapPath(ImageURL) 
oUpload.DeleteFileFromServer(physicalName, iAdID, iImgID) 

en este último caso, HttpContext.Current.Server.MapPath (ImageURL) tiene un valor de Nada.

¿Hay alguna manera de obtener el camino completo para este caso?

+0

Posible duplicado de [¿Cómo puedo usar Server.MapPath() desde global.asax?] (Http://stackoverflow.com/questions/935940/how-can-i-use-server-mappath-from-global -asax) –

Respuesta

1

Suponiendo que las rutas son relativas, el proceso por separado no sabe en qué están relacionadas, qué aplicación web. En este caso, tendrá que almacenarlo en la configuración y, o bien añadir los dos juntos o llevar a cabo una serie de reemplazar ~/

+7

Encontré una mejor respuesta en: http://stackoverflow.com/questions/935940/how-can-i-use-server-mappath-from-global-asax - pero no sé la mejor manera de cierra esta pregunta –

+0

Bueno, aprendí algo nuevo allí. Creo que dejas la pregunta para morir ahora. – Hawxby

16

El HttpContext.Current no está disponible cuando el código se ejecuta dentro de un hilo.

para tener su ruta de la aplicación web se puede utilizar:

System.Web.Hosting.HostingEnvironment.MapPath("~/") 

o simplemente puede encontrar en la propiedad HttpRuntime.AppDomainAppPath (recomendado/rápido).

Cuestiones relacionadas