加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在不使用HttpContext.Current的情况下获取ASP.NET Web

发布时间:2020-12-15 18:35:54 所属栏目:百科 来源:网络整理
导读:我发现自己需要根据相对于正在运行的ASP.NET Web应用程序的物理位置的文件来配置log4net.我们希望尽早启动记录器,因此Application_Start似乎是一个合适的位置.在IIS6中,这工作正常并且已经运行了很长时间,但现在我们转移到IIS7,这将不再起作用: string abso
我发现自己需要根据相对于正在运行的ASP.NET Web应用程序的物理位置的文件来配置log4net.我们希望尽早启动记录器,因此Application_Start似乎是一个合适的位置.在IIS6中,这工作正常并且已经运行了很长时间,但现在我们转移到IIS7,这将不再起作用:
string absolutePath = HttpContext.Current.Request.PhysicalApplicationPath;

因为HttpContext.Current在许多global.asax(应用程序,会话)事件中不可用.这是一个老消息,我们都知道它引起了臭名昭着的Request is not available in this context error.我们不想回到经典模式.

现在,问题很简单:不使用HttpContext,是否可以找到当前运行的Web应用程序实例的物理位置?

解决方法

请尝试 HttpRuntime.AppDomainAppPath.有关详细信息,请阅读Mike Volodarsky发布的 IIS7 Integrated mode: Request is not available in this context exception in Application_Start.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读