在VS2017之前,可以在代码中将Application Insight集成到Asp.NET Core应用程序中。在VS2017中,只能使用IDE(连接服务)作为" Microsoft.ApplicationInsights.AspNetCore"(2.0.0。)不再提供builder.AddApplicationInsightsSettings(developerMode: true);
扩展名。所有相关资源都不适用于VS2017(即https://github.com/Microsoft/ApplicationInsights-aspnetcore/wiki/Getting-Started)。
使用新的VS2017功能"连接服务"时,我们应该如何连接到每个环境的不同Application Insights实例?
答案 0 :(得分:1)
好的,仍然可以使用ApplicationInsightsServiceOptions
手动设置ApplicationInsights。以下是源代码,如何实际解决设置:
internal static void AddTelemetryConfiguration(IConfiguration config, ApplicationInsightsServiceOptions serviceOptions)
{
string str1 = config["APPINSIGHTS_INSTRUMENTATIONKEY"];
if (string.IsNullOrWhiteSpace(str1))
str1 = config["ApplicationInsights:InstrumentationKey"];
if (!string.IsNullOrWhiteSpace(str1))
serviceOptions.InstrumentationKey = str1;
string str2 = config["APPINSIGHTS_DEVELOPER_MODE"];
if (string.IsNullOrWhiteSpace(str2))
str2 = config["ApplicationInsights:TelemetryChannel:DeveloperMode"];
if (!string.IsNullOrWhiteSpace(str2))
{
bool result = false;
if (bool.TryParse(str2, out result))
serviceOptions.DeveloperMode = new bool?(result);
}
string str3 = config["APPINSIGHTS_ENDPOINTADDRESS"];
if (string.IsNullOrWhiteSpace(str3))
str3 = config["ApplicationInsights:TelemetryChannel:EndpointAddress"];
if (!string.IsNullOrWhiteSpace(str3))
serviceOptions.EndpointAddress = str3;
string str4 = config["version"];
if (string.IsNullOrWhiteSpace(str4))
return;
serviceOptions.ApplicationVersion = str4;
}
因此,您可以看到具有最高优先级的环境变量。您可以在Azure应用程序设置中设置APPINSIGHTS_INSTRUMENTATIONKEY
变量,它将被选中。
如果使用VS2017连接服务设置,它会将其配置存储到csproj
,appsettings.json
(InstrumentationKey)和/Connected Services/Application Insights/ConnectedServices.json
。