Comment utiliser Server.MapPath lorsque HTTPContext .Current est Nothing
J'ai un code qui fonctionne très bien quand j'ai besoin de supprimer certains fichiers image à partir d'un répertoire de mon serveur web:
Dim ImageURL As String = dsImages.Tables(0).Rows(iImgRow).Item("ImageURL")
Dim physicalName = Server.MapPath(ImageURL)
oUpload.DeleteFileFromServer(physicalName, iAdid, iImgID)
..mais je suis confronté à un problème lors d'une tâche de maintenance exécute dans un thread séparé à intervalles réguliers détermine que des fichiers comme ci-dessus doivent être supprimés:
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)
Dans ce dernier cas, HttpContext.Actuel.Serveur.MapPath(ImageURL) a une valeur de Rien.
Est-il un moyen d'obtenir le chemin d'accès complet pour ce cas?
source d'informationauteur John Adams
Vous devez vous connecter pour publier un commentaire.
En supposant que les chemins sont relatifs ensuite le processus séparé ne savent pas ce qu'ils sont par rapport à l'application web. Dans ce cas, vous aurez besoin de le stocker dans la config et ajouter les deux ensemble ou d'exécuter une chaîne de remplacer dans ~/
La
HttpContext.Current
n'est pas disponible lorsque votre code est exécuté dans un thread.D'avoir votre application web chemin, vous pouvez soit utiliser :
ou tout simplement vous pouvez le trouver dans la
HttpRuntime.AppDomainAppPath
propriété (recommandé/rapide).