Log4Net和.NET 4.0 RC

问题描述:

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

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

继承安全规则违反 而重写成员: 'log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'。

[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)] 
: 的 压倒一切的方法的安全性接触的条件必须通过添加以下行来log4net的组件(在AssemblyInfo.cs中)解决方法 是

这的 安全辅助功能相匹配

有人可以解释为什么这是必需的,是否有替代方法这样做?这与Log4Net如何写入或者其他什么有关?

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

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

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