我正在使用应用程序洞察SDK来记录异常。我在applicationisightconfig文件中设置了排除/包含事件类型列表。
我的问题是,如果我在运行时更改applicationinsightconfig文件以更新排除列表事件列表,它是否会回收应用程序域。
答案 0 :(得分:0)
我的问题是,如果我在运行时更改applicationinsightconfig文件以更新排除列表事件列表,它是否会回收应用程序域。
根据我的测试,如果您将applicationinsightconfig更改为applicationisightconfig文件中的排除/包含事件类型列表。它不会影响您的Web应用程序。
Web应用程序仍然可以正常运行。
TelemetryConfiguration类将获取要运行的参数(在.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文件添加自定义类型。
应用程序启动后,我更改了以下设置:
但是自定义属性仍然是“1.2-beta”,没有改变。
在我看来,applicationinsightconfig将在应用程序运行时加载。因此,如果您更改了applicationinsightconfig设置,它将在应用程序重新启动后生效。