httpcontext.current.server.mappath Object reference not set to an instance of an object
我在一个类中使用以下代码:
1
| string filePath = HttpContext.Current.Server.MapPath("~/email/teste.html"); |
文件teste.html在文件夹中
但当它打开文件时,会生成以下错误:
Object reference not set to an instance of an object.
- 对MapPath的调用是否发生异常?听起来可能有一个不同的行引发了异常,如果是这样的话,你能发布实际引发异常的行吗?
- 几乎所有的NullReferenceException病例都是相同的。请参见"什么是.NET中的NullReferenceException?"一些提示。
不要使用server.mappath。它很慢。用这个来代替,HttpRuntime.AppDomainAppPath。只要您的网站正在运行,此属性始终对您可用。
然后这样使用:
1
| string filePath = Path.Combine(HttpRuntime.AppDomainAppPath,"email/teste.html"); |
- 获取错误:在类库中使用时,"System.Web.HttpRuntime.AppDomainAppPath"不能像方法那样使用。
- jitendra、httpruntime.appdomainapppath是属性,而不是方法。问候,Nick
- 哦!!好久不见了,终于成功了
- @用户12345,很高兴它帮了你。
- 当我在服务器中部署我的代码时,这会起作用吗?@尼克在线
- @蒂鲁,是的。
- 这也不适用于相对路径,如../images/。
如果不是从线程内运行的代码正在执行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(例如,Yahia指出,当通过BeginInvoke调用方法时),对HttpContext.Current.Server.MapPath()的调用必须失败。对于这些场景,System.Web.Hosting名称空间中有HostingEnvironment.MapPath()。
1
| string filePath = HostingEnvironment.MapPath("~/email/teste.html"); |