我有一個MVC Web應用程序。它有條件地在調試配置中運行時在Application_Start()期間初始化數據庫中的測試數據。顯然,由於開發人員向項目添加了應用程序洞察跟蹤,這種初始化顯然非常緩慢。你看,我們每次通過實體框架保存到數據庫的時候,我們現在打在調用堆棧如下:需要防止Application Insights在Web應用程序中進行調試時進行初始化
System.Web.dll!System.Web.HttpContext.Request.get()
Microsoft.AI.Web.dll!Microsoft.ApplicationInsights.Web.Implementation.HttpContextExtensions.GetRequest(System.Web.HttpContext context)
Microsoft.AI.Web.dll!Microsoft.ApplicationInsights.Web.Implementation.WebTelemetryInitializerBase.Initialize(Microsoft.ApplicationInsights.Channel.ITelemetry telemetry)
Microsoft.ApplicationInsights.dll!Microsoft.ApplicationInsights.TelemetryClient.Initialize(Microsoft.ApplicationInsights.Channel.ITelemetry telemetry)
HttpContext.Request.Get()!不開玩笑會很慢。在數據填充期間我們正在進行大量的保存。當然,這裏會有優化,但這是一堆亂七八糟的亂七八糟的東西,我沒有寫,而是寧願避免開放。
基本上,我希望Application Insights停止執行任何Web請求。優選地,它在調試中什麼也不做,但只要它表現良好,我不介意。我試過設置:
TelemetryConfiguration.Active.DisableTelemetry = true;
但這顯然不影響任何codepath調用TelemetryClient.Initialize()。任何指針?
困惑.....所有正在被訪問HttpContext.Request對象;它不會執行任何Web請求到遠程服務。你確定這是瓶頸嗎? – tomasr
@tomasr,不,我不確定。我注意到*每當我掛斷時,我都會在這個通話中(每次返回大約5秒鐘)。我假設這意味着我在這裏度過大部分時間。不過,你是對的,這是財產獲得者。不知道爲什麼它會這麼慢。我猜這是一個懶惰的負載。 – ChiralMichael
可能的重複http://stackoverflow.com/a/23254776/4848251 –