【问题标题】:Server.MapPath inside Application_End handler in Global.asaxGlobal.asax 中 Application_End 处理程序中的 Server.MapPath
【发布时间】:2012-03-12 17:20:20
【问题描述】:

我想在我的应用程序结束时保存一个文件。

为此,我需要获取应用程序的根文件夹。

我知道这样做的唯一方法是使用Server.MapPath("~"),但这不起作用,即使通过HttpContext.Current.Server,据我所知,因为没有当前上下文。

是否有一种智能且简单的方法来获取该文件夹路径? 我会不会有权限问题,试图在根文件夹中创建一个文件?

任何替代想法如何实现这一点?

【问题讨论】:

    标签: asp.net global-asax application-end


    【解决方案1】:

    您应该使用HttpRuntime.AppDomainAppPath,它将始终有效。

    【讨论】:

      【解决方案2】:
      1. Request.MapPath("")
      2. Request.PhysicalApplicationPath
      3. HttpRuntime.AppDomainAppPath

      编辑

      它应该是HttpRuntime.AppDomainAppPath,因为其他两个选项在 Application_End 处理程序中将为空。

      【讨论】:

      • 它就在那里。我正在使用 VS 2010。Web 应用程序。在Application_End处理程序下的Global.asax.cs文件中,您可以输入上述代码...对吗?
      • 是的,但它将是null。这就是他首先提出这个问题的原因。
      • +1。谢谢。你说的对。我实际上最初无法弄清楚如何触发 Application_End 事件。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-10
      • 1970-01-01
      • 2015-02-11
      • 1970-01-01
      • 1970-01-01
      • 2012-08-26
      相关资源
      最近更新 更多