applicationinsightConfig会导致应用程序回收

时间:2017-07-06 07:56:32

标签: c# azure asp.net-web-api azure-application-insights

我正在使用应用程序洞察SDK来记录异常。我在applicationisightconfig文件中设置了排除/包含事件类型列表。

我的问题是,如果我在运行时更改applicationinsightconfig文件以更新排除列表事件列表,它是否会回收应用程序域。

1 个答案:

答案 0 :(得分:0)

  

我的问题是,如果我在运行时更改applicationinsightconfig文件以更新排除列表事件列表,它是否会回收应用程序域。

根据我的测试,如果您将applicationinsightconfig更改为applicationisightconfig文件中的排除/包含事件类型列表。它不会影响您的Web应用程序。

Web应用程序仍然可以正常运行。

Telemetry​Configuration类将获取要运行的参数(在.config中设置)。

更新

根据我的测试,我发现如果您更改了applicationinsightconfig文件中的设置,则在Web应用程序重新启动之前它将无效。

根据这个article,我创建了一个自定义处理器来过滤遥测并将其注册到SDK。所有遥测都通过您的处理器,您可以选择从流中删除它,或添加属性。

SuccessfulDependencyFilter的一部分:

public class SuccessfulDependencyFilter : ITelemetryProcessor
  {

    private ITelemetryProcessor Next { get; set; }

    // You can pass values from .config
    public string MyParamFromConfigFile { get; set; }

  // Example: replace with your own modifiers.
    private void ModifyItem (ITelemetry item)
    {
        item.Context.Properties.Add("app-version", "1." + MyParamFromConfigFile);
    }

applicationinsightconfig文件添加以下设置。

<TelemetryProcessors>
      <Add Type="WebApplication9.SuccessfulDependencyFilter, WebApplication9">
         <!-- Set public property -->
         <MyParamFromConfigFile>2-beta</MyParamFromConfigFile>
      </Add>
    </TelemetryProcessors>

它将根据applicationinsightconfig文件添加自定义类型。

应用程序启动后,我更改了以下设置:

enter image description here

但是自定义属性仍然是“1.2-beta”,没有改变。

enter image description here

在我看来,applicationinsightconfig将在应用程序运行时加载。因此,如果您更改了applicationinsightconfig设置,它将在应用程序重新启动后生效。