簡體   English   中英

在global.asax中確定request.islocal

[英]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.CompilationSectionSystem.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM