我已經使用 Microsoft Docs 中給出的教程為我的ASP.NET MVC 應用程式配置了Live Metrics和目標框架 4.7.2 :
https://docs.microsoft.com/en-us/azure/azure-monitor/app/live-stream#enable-livemetrics-using-code-for-any-net-application
在本教程中,他們給出了一個示例client.TrackDependency()并client.TrackRequest()最終呼叫。他們還在評論中提到這些是示例,我們必須用實際的應用程式邏輯替換它才能作業。我對所有這些都是新手,我不知道要替換什么。由于我的應用程式很大并且有很多方法,因此在每個方法或控制器中呼叫跟蹤方法是不切實際的。由于它不是 ASP.NET Core,因此沒有中間件,我也必須通過代碼啟用 Live Metrics。我在我的應用程式中添加了代碼Application_Start(),Global.asax.cs以便它在啟動期間運行。
這是我到目前為止所做的,
// Create a TelemetryConfiguration instance.
Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration telemetryConfig = Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.CreateDefault();
telemetryConfig.InstrumentationKey = System.Web.Configuration.WebConfigurationManager.AppSettings["AppInsightsInstrumentationKey"];
QuickPulseTelemetryProcessor quickPulseProcessor = null;
telemetryConfig.DefaultTelemetrySink.TelemetryProcessorChainBuilder
.Use((next) =>
{
quickPulseProcessor = new QuickPulseTelemetryProcessor(next);
return quickPulseProcessor;
})
.Build();
var quickPulseModule = new QuickPulseTelemetryModule();
// Secure the control channel.
// This is optional, but recommended.
//quickPulseModule.AuthenticationApiKey = "YOUR-API-KEY-HERE";
quickPulseModule.Initialize(telemetryConfig);
quickPulseModule.RegisterTelemetryProcessor(quickPulseProcessor);
// Create a TelemetryClient instance. It is important
// to use the same TelemetryConfiguration here as the one
// used to setup Live Metrics.
TelemetryClient client = new TelemetryClient(telemetryConfig);
// I need some method by which I can track all the requests, exceptions,
// dependencies etc. here.
我搜索并搜索了很多解決方案,但找不到具體的解決方案。作為最后的手段,我請求你們幫助我。我可以做些什么來跟蹤全域的所有請求、依賴項、例外等......?
uj5u.com熱心網友回復:
如果您使用 .Net Framework 4.7.2 版本的 ASP .NET MVC,則需要配置與 .NET 特定 SDK 型別(如 Framework、Core、Console 等)相關的 Application Insights 代碼。
從給定的MS 檔案中,您將遵循與控制臺應用程式相關的應用程式洞察代碼,但由于您使用的是 MVC Web 應用程式,因此您需要遵循此部分檔案中的代碼。
這是我嘗試在 Azure 門戶的 Application Insights 中獲取實時指標的解決方法。
- 在 Visual Studio 中,創建了 asp .net mvc Web 應用程式(.NET Framework 版本 4.7.2)
- 在
ApplicationInsights.config - 按照上面的檔案說明在根目錄中創建一個新檔案夾并添加類并從App_Start
ErrorHandler檔案夾修改類以匹配您的類功能。FilterConfigErrorHandler - 然后部署 MVC Web App。發布時在 Visual Studio 發布視窗中配置 Application Insights,如下所示:

部署應用程式后,在瀏覽器中打開 Web 應用程式 URL,然后您可以在概覽選項卡和 App Insights 資源實時指標頁面中看到日志,如下圖所示:


uj5u.com熱心網友回復:
我自己找到了解決方案。我發現我可以使用Application_BeginRequest()事件處理程式來捕獲自身內部的所有請求Global.asax。我所要做的就是將它存盤TelemetryConfiguration到一個全域變數中并從Application_BeginRequest()處理程式中訪問它。這就是我所做的:
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;
protected void Application_Start()
{
RegisterLiveMetrics();
// Omitted the other code for brevity
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
var telemetryConfig = Application["TelemetryConfig"] as TelemetryConfiguration;
TelemetryClient client = new TelemetryClient(telemetryConfig);
var httpContextCurrent = HttpContext.Current;
client.TrackRequest(httpContextCurrent.Request.RawUrl, DateTimeOffset.Now,
TimeSpan.FromMilliseconds(230), httpContextCurrent.Response.StatusCode.ToString(),
true);
}
private void RegisterLiveMetrics()
{
// Create a TelemetryConfiguration instance.
Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration telemetryConfig = Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.CreateDefault();
telemetryConfig.InstrumentationKey = System.Web.Configuration.WebConfigurationManager.AppSettings["AppInsightsInstrumentationKey"];
QuickPulseTelemetryProcessor quickPulseProcessor = null;
telemetryConfig.DefaultTelemetrySink.TelemetryProcessorChainBuilder
.Use((next) =>
{
quickPulseProcessor = new QuickPulseTelemetryProcessor(next);
return quickPulseProcessor;
})
.Build();
var quickPulseModule = new QuickPulseTelemetryModule();
quickPulseModule.Initialize(telemetryConfig);
quickPulseModule.RegisterTelemetryProcessor(quickPulseProcessor);
Application["TelemetryConfig"] = telemetryConfig;
}
幸運的是,這似乎作業正常。目前我只跟蹤請求。
注意:我不確定上面提到的命名空間。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/424697.html
標籤:C# 网 asp.net-mvc 天蓝色应用洞察
