如何最好地使应用程序 Inisghts 的检测 key 以允许 Azure 管理员管理 MVC5 Web 应用程序的应用服务部署设置的方式进行配置?在 MVC 应用程序初始化中是否有某个事件应该完成,或者几乎可以在任何时候完成?我也在使用 Trace Listener 集成。

默认情况下,仪器 key (iKey) 在 ApplicationInsights.config 文件中设置。此外,如果您包含 JavaScript 部分,则会在 _Layout.cshtml 文件中再次设置 iKey。这是两个不同的地方,你需要管理一个 iKey。

我希望能够通过 Azure 门户的 应用服务 -> 应用程序设置 选项卡管理此 key 。原因是:

  • 我想部署这个应用程序的多个实例,每个实例都有自己唯一的 iKey
  • 我想定期更改这个 iKey(因为原因)
  • 我不希望这个 iKey 存储在我们的代码存储库中(“开发”iKey 可以在代码存储库中),我也不希望它由我们的构建自动化管理(同样,因为原因)
  • 最佳答案

    您指定的所有方法都很棒。我们的建议是使用 web.config 应用程序设置并在 global.asax.cs 中使用它进行标准初始化。当我们 Hook OnBeginRequest() 时,在初始化之前不会发送遥测数据。

    https://docs.microsoft.com/en-us/azure/application-insights/app-insights-api-custom-events-metrics#a-namedynamic-ikeya-dynamic-instrumentation-key

    另一种可能有效的方法是设置 APPINSIGHTS_INSTRUMENTATIONKEY 环境变量,因为它被 SDK 选中。当然,这取决于您是否在同一台机器上有多个应用程序。

    https://github.com/Microsoft/ApplicationInsights-dotnet/blob/v2.2.0/src/Core/Managed/Net40/Extensibility/Implementation/TelemetryConfigurationFactory.cs#L22

    10-04 23:35