Obtenez de chemin de ASP.NET MVC site dans le système de fichiers
J'ai un ASP.NET projet MVC qui a un sous-dossier appelé e-mails. Il contient des fichiers HTM pour mes modèles d'e-mail. À certains points du site, j'ai un contrôleur qui doit charger l'un de ces modèles et de les envoyer en e-mail.
Ce que j'essaie de faire est d'utiliser la réflexion pour obtenir le chemin d'accès courant de l'exécution de l'assemblage, mais il ne fonctionne pas comme je l'attends. Le chemin que je suis de retour est:
var directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary
ASP.NET iles\ssl\1da130c4\f8e7810e\assembly\dl3\5f253aca\1a71f123_e83bcc01\Emails\ProductAccountConfirmation.htm'
Je trouve cela étrange car le site est hébergé dans IIS via Visual Studio. J'aurais pensé que ce serait me donner la dll emplacement dans mon dossier de projet en dev et du dossier de déploiement pour IIS dans la production.
Vous devez vous connecter pour publier un commentaire.
Ce que vous cherchez est Serveur.MapPath(), il va vous donner le chemin d'accès de l'application que vous êtes en cours d'exécution.
Donc, disons que vous avez un fichier nommé template1.html dans vos e-mails sous-dossier. Ce code devrait vous donner le chemin d'accès complet du fichier HTML.
Avec ASP.Net une copie est faite des assemblées, et c'est la copie qui est utilisé lors de l'exécution. Votre dll dans le dossier du projet sont simplement des modèles.
Pour quelle raison avez-vous besoin de ce répertoire? Il y a peut être une autre façon d'atteindre vos objectifs.
Vous pouvez obtenir votre racine de l'application de la trajectoire avec: