我正在我的global.asax中的Application_Start
块中运行一些代码,我正在寻找一种方法来确定应用程序是否在本地运行,这样我就可以有条件地执行代码。 / p>
通常我会使用类似的东西,但global.asax中没有httpcontext
:
if (Request.IsLocal == true) {
//run the code...
}
还有另一种方法可以确定应用是否在本地运行? Debug
总是会在localhost上设置为true
,所以也许这会给我一些我可以使用的句柄?
编辑12月13日
我应该澄清BeginRequest
这里不适合候选人,因为正在执行的代码是将大量文件写入本地目录,并且不应该在每次请求时重复这些。
答案 0 :(得分:2)
这个是关于从web.config确定 debug 的问题:
var configSection = ConfigurationManager.GetSection("system.web/compilation");
if (configSection.Debug) {
// your code
}
我认为你还需要适当地施展。就在手边。
烨。你必须把它投到System.Web.Configuration.CompilationSection
。
答案 1 :(得分:2)
好的决定顺其自然,@ abhitalks的解决方案也有效!
if System.Diagnostics.Debugger.IsAttached() {
//....
}
答案 2 :(得分:1)
这对我有用。
if (!HostingEnvironment.IsDevelopmentEnvironment)
{
GlobalFilters.Filters.Add(new RequireHttpsAttribute());
}
要了解有关如何设置IsDevelopmentEnvironment的更多信息,请查看以下主题。
In ASP.NET, what determines the value of HostingEnvironment.IsDevelopmentEnvironment?
答案 3 :(得分:0)
确定或分类两者的最简单方法是将所需的代码条件放在Application_Start中本地执行,其中就好像它不是在本地执行,然后将它放在Global.asax的BeginRequest中。
我在几天前遇到了issue,可以在线获得即时回复。