[英]Determine request.islocal in global.asax
我正在global.asax中的Application_Start
塊中運行一些代碼,並且正在尋找一種確定應用程序是否在本地運行的方式,以便可以有條件地執行代碼。
通常我會使用類似這樣的東西,但是global.asax中沒有httpcontext
:
if (Request.IsLocal == true) {
//run the code...
}
還有其他方法可以確定應用程序是否在本地運行嗎? 在localhost上, Debug
總是設置為true
,所以也許這會給我一些可用的句柄?
編輯12月13日
我應該已經闡明BeginRequest
在這里不合適,因為正在執行的代碼正在將許多文件寫入本地目錄,因此不應在每個請求中都重復此操作。
這是專門針對您有關從web.config確定調試的問題:
var configSection = ConfigurationManager.GetSection("system.web/compilation");
if (configSection.Debug) {
// your code
}
我認為您也需要適當地進行投射。 剛起手。
對。 您必須將其System.Web.Configuration.CompilationSection
為System.Web.Configuration.CompilationSection
。
好的,決定繼續這樣做,@abhitalks的解決方案也可以!
if System.Diagnostics.Debugger.IsAttached() {
//....
}
這對我有用。
if (!HostingEnvironment.IsDevelopmentEnvironment)
{
GlobalFilters.Filters.Add(new RequireHttpsAttribute());
}
要了解有關如何設置IsDevelopmentEnvironment的更多信息,請查看以下線程。
在ASP.NET中,由什么決定HostingEnvironment.IsDevelopmentEnvironment的值?
確定兩者或對其進行分類的最簡單方法是將所需的代碼條件放置在Application_Start中,就好像不是在本地執行一樣,然后將其放置在Global.asax的BeginRequest中。
我幾天前就遇到了這個問題 ,可以在線獲得即時答復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.