如何在不使用HttpContext.Current的情况下获取ASP.NETWeb应用程序的物理位置?我发现自己需要根据与正在运行的ASP.NETWeb应用程序的物理位置相关的文件来配置log4net。我们想尽早启动记录器,所以Application_Start似乎是一个合适的地方。在IIS6中,它运行良好并且已经运行了很长时间,但是现在我们已经转移到IIS7中,它不再起作用了:stringabsolutePath=HttpContext.Current.Request.PhysicalApplicationPath;因为HttpContext.Current在很多global.asax(applicationProgram,Session)事件中是不可用的。这是旧消息,我们都知道它引发了现在臭名昭著的请求在此上下文中不可用错误。我们不想回到经典模式。现在,问题很简单:是否可以在不使用HttpContext的情况下找到当前正在运行的Web应用程序实例的物理位置?尝试HttpRuntime.AppDomainAppPath。有关详细信息,请阅读IIS7集成模式:MikeVolodarsky发布的Application_Start中的此上下文异常中的请求不可用。作为我自己问题的替代答案,我想补充一点,Server.MapPath()也在Application_Start事件期间起作用。应用程序域路径将等于Server.MapPath("~"),但它更方便映射相对路径,消除连接负担(MapPath开头是什么意思)。以上是C#学习教程:HowtogetthephysicallocationofanASP.NETWebapplicationwithoutusingHttpContext.Current?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
