当我使用"添加应用程序洞察遥测..."右键单击Visual Studio中的解决方案资源管理器中的ASP.NET应用程序以将应用程序指向现有Application Insights资源,可以使用菜单选项,生成的文件更改包括向.csproj
文件添加两个项目:< / p>
<ApplicationInsightsResourceId>/subscriptions/$guid/resourcegroups/$rgname>/providers/microsoft.insights/components/$name</ApplicationInsightsResourceId>
<ApplicationInsightsAnnotationResourceId>/subscriptions/$guid/resourcegroups/$rgname/providers/microsoft.insights/components/$name</ApplicationInsightsAnnotationResourceId>
我遗漏了一些信息 - $guid
是Azure订阅GUID,$rgname
和$name
分别是为Application Insights资源组和资源提供的名称。
每个元素之间有什么区别?他们似乎有相同的信息。
如果我想将遥测发送到不同环境中的不同Application Insights资源,文档告诉我需要在代码中为每个环境设置检测密钥 - 这很好 - 但这些设置呢?它们是否用于驱动Visual Studio中的上下文相关菜单选项以外的任何其他内容?我是否需要在其他环境中担心它们?
答案 0 :(得分:14)
这些纯粹是在Visual Studio工具中使用。它们位于csproj中,因此所有获得项目(源代码控制)或其他任何内容的用户都拥有这些值。 (如果它存储在注册表或.suo或其他非源位置,它就不会随着项目一起旅行)
ApplicationInsightsResourceId
是项目的资源ID,用于在配置窗口中显示有关您正在向其发送数据的认为的资源的信息。默认情况下,这也用于在codelens / etc中显示数据。您可以在配置窗口中覆盖它以选择不同的资源(例如,如果您在开发时将数据发送到调试/暂存资源,但始终希望代码透镜/其他工具始终显示来自prod的数据)更改内部的资源配置窗口将设置此属性(并将更新applicationinsights.config文件中的ikey)
ApplicationInsightsAnnotationResourceId
是VS将尝试提交发布release annotations的资源。您也可以在配置窗口内更改此资源(或完全转换此行为)。如果您不从VS内部发布,则此设置不会执行任何操作。
这些设置不会影响数据在运行时实际运行的位置。如果您在代码中设置检测键,您的数据仍然会在那里。