在我的ASP.NET应用程序的启动代码(即没有请求)中,我需要获取应用程序根目录的路径.我需要这个打开我在根目录下的文件夹中的文件.
我怎么能得到这个?
我发现自己需要根据相对于正在运行的ASP.NET Web应用程序的物理位置的文件来配置log4net.我们希望尽早启动记录器,所以Application_Start似乎是一个合适的地方.在IIS6中,这工作正常并且已经运行了很长时间,但现在我们转移到IIS7,这将不再起作用:
string absolutePath = HttpContext.Current.Request.PhysicalApplicationPath;
Run Code Online (Sandbox Code Playgroud)
因为HttpContext.Current在许多global.asax(应用程序,会话)事件中不可用.这是旧闻,我们都知道它引发了现在臭名昭着的请求在此上下文错误中不可用.我们不想回到经典模式.
现在,问题很简单:没有使用HttpContext,是否可以找到当前运行的Web应用程序实例的物理位置?