相关疑难解决方法(0)

SLAB,进程外:更改事件源方法的签名会导致错误的事件记录

我为记录事件实现了一个事件源类.在多次更改记录事件的一种方法的签名(参数名称和参数类型)后,不再正确记录事件.例如,当记录事件时,不是使用当前参数名称设置Payload,而是使用用于先前版本方法的参数记录事件.例如:

方法的版本n:

    [Event(5, Message = "Action: {0}",
    Task = Tasks.PAGE,
    Keywords = Keywords.USER_ACTION,
    Level = EventLevel.Informational)]
    public void LogAction(string action, string paramName)
    {
        this.WriteEvent(5, action, paramName);
    }
Run Code Online (Sandbox Code Playgroud)

版本n + 1的方法:

    [Event(5, Message = "Action: {0}",
    Task = Tasks.PAGE,
    Keywords = Keywords.USER_ACTION,
    Level = EventLevel.Informational)]
    public void LogAction(string action, string newParamName)
    {
        this.WriteEvent(5, action, newParamName);
    }
Run Code Online (Sandbox Code Playgroud)

当为记录事件调用此方法时,将记录它们,并使用参数名称paramName而不是newParamName设置Payload值.

现在,问题是:如何清除"缓存",系统会忘记方法的旧版本,新方法可以正确记录事件?

LE:我用PerfView测试了日志记录.有趣的是,它正确地读取日志.我使用SemanticLogging-svc.exe再次测试,日志仍然显示不正确.看起来问题不在于记录事件,而在于阅读它们.

methods signature out-of-process slab

1
推荐指数
1
解决办法
689
查看次数

标签 统计

methods ×1

out-of-process ×1

signature ×1

slab ×1