C# 确定global.asax中的request.islocal

C# 确定global.asax中的request.islocal,c#,asp.net,global-asax,httpcontext,C#,Asp.net,Global Asax,Httpcontext,我正在global.asax中的Application\u Start块中运行一些代码,我正在寻找一种方法来确定应用程序是否在本地运行,以便有条件地执行代码 通常我会使用类似的东西,但是global.asax中没有httpcontext: if (Request.IsLocal == true) { //run the code... } 是否有其他方法可以确定应用程序是否在本地运行Debug在本地主机上总是设置为true,所以这可能会给我一些可以使用的句柄 编辑1

我正在global.asax中的
Application\u Start
块中运行一些代码,我正在寻找一种方法来确定应用程序是否在本地运行,以便有条件地执行代码

通常我会使用类似的东西,但是global.asax中没有
httpcontext

   if (Request.IsLocal == true) {
        //run the code...
   }
是否有其他方法可以确定应用程序是否在本地运行
Debug
在本地主机上总是设置为
true
,所以这可能会给我一些可以使用的句柄

编辑12月13日


我应该澄清一下,
BeginRequest
在这里不是合适的候选者,因为正在执行的代码正在向本地目录写入大量文件,并且这不应该在每次请求时重复。

这是专门针对您关于从web.config确定调试的问题:

var configSection = ConfigurationManager.GetSection("system.web/compilation");
if (configSection.Debug) {
    // your code
}
我认为你也需要适当地投下这个球。马上就好


是的。您必须将其转换到
System.Web.Configuration.CompilationSection

好的,我决定这样做,@abhitalks的解决方案也有效

   if System.Diagnostics.Debugger.IsAttached() {
        //....
   }

确定或分类两者的最简单方法是将需要在本地执行的代码条件放在Application_Start中,如果它不是在本地执行,则将其放在Global.asax的BeginRequest中

几天前,我面对这一问题,可以在网上得到即时回复。

这对我来说很有效

if (!HostingEnvironment.IsDevelopmentEnvironment)
{
      GlobalFilters.Filters.Add(new RequireHttpsAttribute());
}
要了解IsDevelopmentEnvironment是如何设置的,请查看以下线程


在应用程序启动中,您没有请求,因为应用程序正在启动,而local的含义没有定义,因为应用程序始终启动并运行local如果您可以使用
应用程序。BeginRequest
,谢谢,不过在我的例子中,条件代码正在向驱动器写入一些文件,所以在每次请求时重复这个过程并不理想。也就是说,它可能适用于具有更轻量级代码的其他人。好的。我猜您的问题的另一个回答是尝试类似Request.UserHostAddress的内容,通常在本地运行时返回127.0.0.1@QF_DeveloperRequest在Application_start的上下文中不可用。引发HttpException