gpt4 book ai didi

asp.net-mvc - 可配置的 Application Insights 仪器 key

转载 作者:行者123 更新时间:2023-12-02 02:38:31 25 4
gpt4 key购买 nike

如何最好地配置应用程序 Inisghts 的检测 key ,以允许 Azure 管理员管理 MVC5 Web 应用程序的应用服务部署的设置? MVC 应用程序初始化中是否存在应该执行此操作的特定事件,或者是否可以在几乎任何时刻执行此操作?我也在使用 Trace Listener 集成。

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

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

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

最佳答案

这是我当前正在使用的实现,它似乎有效。但是,我还有其他实现,这些实现似乎将 iKey 设置得太早或太晚,因为它似乎会在物理 web.config 中使用 iKey。将文件部署到 Azure,而不是从门户的应用程序设置选项卡中提取。是否有更好的选择以最佳实践方式做到这一点?

ApplicationInsights.config

<!-- Find the following node and *remove* it. It will have a GUID in it.
If you leave this, you may receive some errors even with all of the
other changes. -->
<InstrumentationKey>{GUID HERE}</InstrumentationKey>

Global.asax.cs

    protected void Application_Start()
{
// Add this first line below
Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey =
ConfigurationManager.AppSettings["ai:InstrumentationKey"];

// Showing the rest of this so you can see the order of operations
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
AutomapperConfig.Init();
}

web.config

<!-- Add the following to <appSettings> and put your iKey value in here. -->
<add key="ai:InstrumentationKey" value="*****" />

_Layout.cshtml(在 HTML 的 <head> 部分中。 future 读者请注意:我建议您不要使用整个代码段,而只使用以 instrumentationKey: 开头的行)并将该行集成到该 JS 片段其余部分的现代版本中!):

<script type = 'text/javascript' >
var appInsights=window.appInsights||function(config)
{
function r(config){ t[config] = function(){ var i = arguments; t.queue.push(function(){ t[config].apply(t, i)})} }
var t = { config:config},u=document,e=window,o='script',s=u.createElement(o),i,f;for(s.src=config.url||'//az416426.vo.msecnd.net/scripts/a/ai.0.js',u.getElementsByTagName(o)[0].parentNode.appendChild(s),t.cookie=u.cookie,t.queue=[],i=['Event','Exception','Metric','PageView','Trace','Ajax'];i.length;)r('track'+i.pop());return r('setAuthenticatedUserContext'),r('clearAuthenticatedUserContext'),config.disableExceptionTracking||(i='onerror',r('_'+i),f=e[i],e[i]=function(config, r, u, e, o) { var s = f && f(config, r, u, e, o); return s !== !0 && t['_' + i](config, r, u, e, o),s}),t
}({
instrumentationKey:'@(Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey)'
});

window.appInsights=appInsights;
appInsights.trackPageView();
</script>

关于asp.net-mvc - 可配置的 Application Insights 仪器 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42257294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com