Log4Net error: Inheritance security rules violated while overriding member: 'log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData.....
环境:
window 7 enterprise
Visual Studio 2010
.NET framework 4
Log4Net 1.2.11
问题:
给Log4Net加上Key后,就报错:
Inheritance security rules violated while overriding member: 'log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'. Security accessibility of the overriding method must match the security accessibility of the method being。。。
解决办法:
给Log4Net加上: [assembly:System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]
原因:
This is required because .NET 4.0 added Level 2 Security-Transparent Code (which is the new default) and did away with Code Access Security. Level 1 Security-Transparent Code is still there for compatibility but, as you found, has to be specified.