Je travaille avec le planificateur de DotNetNuke pour planifier des tâches et je cherche à obtenir le chemin physique d'un modèle d'email que j'ai créé. Le problème est que HttpContext est NULL car la tâche planifiée est sur un thread différent et il n'y a pas de requête http. Comment iriez-vous obtenir le chemin physique du fichier?Dans ASP.NET, comment obtenir le chemin du fichier physcial lorsque HttpContext.Current est NULL?
Répondre
System.Web.Hosting.HostingEnvironment.MapPath est ce que vous cherchez. Chaque fois que vous utilisez le serveur ou les objets HttpContext.Current, vérifiez d'abord si HostingEnvironment a ce dont vous avez besoin.
Étant donné que ce processus est vraiment hors-bande par rapport au site Web, vous pouvez peut-être simplement placer le chemin dans un fichier de configuration.
Peut-être pas la meilleure idée, mais c'est une alternative.
que dit this.GetType(). Assembly.Location?
Il renvoie c: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Fichiers ASP.NET temporaires \ mywebsite \ 50f1a686 \ ab5b581d \ App_Code.xkcsxvg6.dll – John
Pouvez-vous regarder à l'Assemblée & les chemins de CodeBase comme celui-ci:
Imports System.Reflection
Imports System.IO
...
Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase)
Ce genre de choses ne fonctionne pas toujours, donc ce que je recommande de faire est d'écrire un journal avec un tas de données sur l'assemblée, pour voir ce qui fonctionne dans cet endroit. C'est ce que je devais faire pour obtenir quelque chose de similaire lorsque je créais un composant COM à héberger dans AppCenter. J'ai utilisé ceci pour "obtenir" ce que "APP_BASE" devrait être, et le définir, ainsi le fichier app.config se chargerait correctement.
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 ...
Il y a plusieurs façons de le faire, personnellement je contourne le problème en stockant les informations de chemin comme une option de configuration pour mes modules, ce n'est pas élégant, mais ça fonctionne et fonctionne à chaque fois.
Joe Brinkman Je crois que quelque part a publié un blog sur la façon de construire un nouveau HTTPContext à utiliser dans le planificateur.
Pour les futurs lecteurs, les articles de Joe Brinkman sont [ici, pour la version originale] (http://www.dnnsoftware.com/community-blog/cid/135304/the-quest-for-the-dotnetnuke-holy-grail) et [ici pour une version mise à jour] (http://www.dnnsoftware.com/community-blog/cid/137009/new-and-improved-holy-grail). – AaronSieb
- 1. HttpContext.Current est null lorsque CacheItemRemovedCallback est déclenché
- 2. Obtenir le chemin du fichier via javascript
- 3. Comment obtenir le chemin d'accès du fichier exécutable du service
- 4. obtenir le chemin du fichier txt
- 5. NSIS obtenir le chemin du fichier appelant
- 6. iPhone: Obtenir le chemin du fichier qui est dans le sous-dossier du dossier de ressources
- 7. Comment obtenez-vous le chemin du fichier pour le fichier lorsque le répertoire de l'utilisateur change?
- 8. Javascript - obtenir le chemin du fichier a chuté dans HTA
- 9. Obtenir le chemin d'accès réel du dossier
- 10. comment obtenir le serveur chemin absolu
- 11. RegEx pour obtenir le chemin du fichier, sans domaine
- 12. Obtenez le chemin du fichier lorsque vous faites glisser un fichier de finder à un webview?
- 13. Possible de tromper HTTPContext.Current?
- 14. Comment obtenir le chemin d'accès virtuel complet d'une application ASP.NET
- 15. Comment puis-je obtenir le chemin complet du fichier téléchargé en C# 3.0?
- 16. Le chemin du fichier est-il une URL?
- 17. comment obtenir le chemin du fichier vidéo enregistré de temp dans iphone sdk et jouer?
- 18. Comment puis-je obtenir le chemin du fichier dans un paquet java?
- 19. Comment obtenir le chemin du répertoire de contexte dans jsp et comment puis-je le remplacer pour chaque nouvelle demande
- 20. NSIS obtenir le chemin d'accès du fichier d'installation en cours qui est en cours d'exécution
- 21. C# comment spécifier le chemin du fichier appData dans le fichier app.config
- 22. CString extrait le chemin du fichier
- 23. Comment obtenir/définir le chemin du répertoire logique en python
- 24. conserve le chemin du fichier de contrôle du téléchargement de fichier dans le contrôle!
- 25. GetForegroundWindow renvoie Null lorsque le bureau distant est déconnecté
- 26. asp.net arbre css adaptateur selectedNode est null?
- 27. Sql SMO: Comment obtenir le chemin du nom de fichier physique de la base de données?
- 28. Comment obtenir le chemin d'installation d'une application?
- 29. CD vers répertoire, où le chemin est dans un fichier
- 30. Sitemap ASP.NET La propriété .ResourceKey est null
et si vous êtes en dehors d'un projet Web, mais que vous voulez disons aller au dossier des images de votre projet web pour récupérer une image ou lire permet de dire le contenu d'un fichier .htm que les sites de votre site Web mais vous avez une méthode utilitaire que vous voulez appeler à l'extérieur pour obtenir ce fichier? – PositiveGuy
Si vous êtes en dehors du projet Web, je pense que vous aurez besoin de votre propre code personnalisé pour localiser le projet Web de toute façon. Une fois que vous avez cela, vous pouvez continuer à suivre ce chemin sans aucune aide spéciale comme 'MapPath'. – bdukes