【问题标题】:Log4Net and .NET 4.0 RCLog4Net 和 .NET 4.0 RC
【发布时间】:2010-02-17 10:35:12
【问题描述】:

我尝试使用 .NET 4.0 RC 编译依赖于 Log4Net 日志框架的项目,但遇到了一些问题。

开箱即用(只需将目标更改为 .NET 4.0),它不再起作用,引发安全异常。

违反了继承安全规则 覆盖成员时: 'log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'。 安全可访问性 覆盖方法必须匹配 方法的安全可访问性 存在

通过向 log4net 程序集(在 AssemblyInfo.cs 中)添加以下行来解决此问题:

[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]

有人可以解释为什么需要这样做吗?还有其他方法可以替代吗?这与 Log4Net 的编写方式或其他有关吗?

【问题讨论】:

    标签: .net .net-4.0 log4net


    【解决方案1】:

    这是必需的,因为 .NET 4.0 添加了 Level 2 Security-Transparent Code(这是新的默认设置)并取消了 Code Access SecurityLevel 1 Security-Transparent Code 仍然存在以实现兼容性,但正如您所发现的,必须指定。

    你说得对,它与 Log4Net 的编写方式有关。 除了更新 Log4Net 代码或切换到不同的日志记录解决方案之外,您找到的解决方案确实没有其他选择:)

    【讨论】:

      【解决方案2】:

      此错误称为https://issues.apache.org/jira/browse/LOG4NET-347,似乎已修复。

      【讨论】:

        猜你喜欢
        • 2010-12-24
        • 1970-01-01
        • 2010-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多