2013-12-12 40 views
2

request.islocal我跑在我的Global.asax内Application_Start块一些代码,我正在寻找一种方式,我可以判断,如果应用程序在本地运行,所以我可以有条件地执行代码。确定在Global.asax中

通常我会用这样的事情,但在Global.asax没有httpcontext

if (Request.IsLocal == true) { 
     //run the code... 
    } 

是否有另一种方式我可以判断,如果应用程序在本地运行? Debug总是被设置为true localhost上,或许这会给我一些手柄可以使用吗?

编辑12月13日

我应该澄清BeginRequest是不是一个合适的人选这里的代码执行是写了一些文件到本地目录,这不应该在每次请求重复。

+1

在applicationstart你没有becouse的应用程序的请求开始和当地的意义并不becouse应用程序定义总是启动和运行的本地 – giammin

+1

,如果你可以用'Application.BeginRequest',即将工作。 – Abhitalks

回答

2

这一个是专门针对您的问题,有关从web.config中确定调试

var configSection = ConfigurationManager.GetSection("system.web/compilation"); 
if (configSection.Debug) { 
    // your code 
} 

我想你也需要适当的强制转换。就在手边。

是。你必须把它投到System.Web.Configuration.CompilationSection

2

好决定去这一点,@ abhitalks的解决方案也适用!

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

,以确定或分类都被放置要在的Application_Start,在那里,如果它是为不本地执行本地执行所需要的代码条件的最简单方法,然后将其放置在Global.asax中的的BeginRequest。

我几天前遇到这个issue,可以在线获得即时回复。

+0

感谢虽然在我的情况下,条件代码正在写入一些文件到驱动器,所以这是不理想的每个请求重复此过程。这表示它可能适用于更轻量级代码的其他人。 – QFDev

+2

ok.another来自你的问题的答复,我可以猜出来正在尝试类似Request.UserHostAddress的东西,通常在本地运行时通常会返回127.0.0.1。 @QF_Developer –

+0

请求在Application_start的上下文中不可用。抛出HttpException –