我有一个ASP.NET MVC项目,它有一个名为emails的子文件夹.这包含我的电子邮件模板的HTM文件.在网站的某些位置,我有一个控制器,需要加载其中一个模板并将其作为电子邮件发送.
我正在尝试做的是使用反射来获取当前正在执行的程序集的路径,但它没有像我期望的那样工作.我回来的路是:
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’
我发现这很奇怪,因为该站点是通过Visual Studio在IIS中托管的.我原以为这会给我在dev的项目文件夹中的dll位置和生产中的IIS的deploy文件夹.
解决方法
您正在寻找的是
Server.MapPath(),它将为您提供正在执行的应用程序的路径.