我正在一个类中使用以下代码:
string filePath = HttpContext.Current.Server.MapPath("~/email/teste.html");
文件teste.html在文件夹中。
但是当打开该文件时,会生成以下错误:
对象引用未设置为对象的实例。
我正在一个类中使用以下代码:
string filePath = HttpContext.Current.Server.MapPath("~/email/teste.html");
文件teste.html在文件夹中。
但是当打开该文件时,会生成以下错误:
对象引用未设置为对象的实例。
不要使用Server.MapPath。它很慢。请改用HttpRuntime.AppDomainAppPath
。只要您的网站在运行,这个属性就一直可用。
然后像这样使用:
string filePath = Path.Combine(HttpRuntime.AppDomainAppPath, "email/teste.html");
httprequest
,那么HttpContext.Current
将为 null
(例如当您的方法通过 BeginInvoke
调用时)- 请参见http://forums.asp.net/t/1131004.aspx/1。HttpRuntime
,请参见http://msdn.microsoft.com/en-us/library/system.web.httpruntime.aspx。如果没有 HttpContext
(例如在通过 BeginInvoke
调用方法时,正如 Yahia 指出的那样),那么调用 HttpContext.Current.Server.MapPath()
就会失败。对于这些情况,在 System.Web.Hosting
命名空间中有 HostingEnvironment.MapPath()
。
string filePath = HostingEnvironment.MapPath("~/email/teste.html");
../images/
。 - AaAstring filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory,@"..\..") + "\\email\\teste.html";
string physicalPath = System.IO.Path.GetFullPath("..\\..\\Images");
我希望这能帮助到和我面临同样问题的人。
MapPath
的调用是发生异常的地方吗?听起来可能有另一行代码抛出了异常,如果是这样的话,你能否发布实际抛出异常的那一行代码。 - CodingGorilla