在.NET 4.0下使用最新版本的log4Net 1.2.10,会遇到下面这样的错误:

重写成员“log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData(System.Runtime.Serialization.SerializationInfo,

System.Runtime.Serialization.StreamingContext)”时违反了继承安全性规则。重写方法的安全可访问性必须与所重写方法的安全可访问性

匹配。 
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.TypeLoadException: 重写成员“log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData

(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)”时违反了继承安全性规则。重写

方法的安全可访问性必须与所重写方法的安全可访问性匹配。

源错误:

行 10:     public class CustomerController : Controller
行 11:     {
行 12:         private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(CustomerController));

经跟踪源码,要解决这个错误,应对log4net源码做如下修改:

1、使用NET_20预编译常量编译log4net项目,目标Runtime改为.NET 4.0 framework;

2、确保log4net.Util.SystemInfo.CurrentThreadId返回的是System.Threading.Thread.CurrentThread.ManagedThreadId;

3、注释掉AssemblyInfo.cs中的代码行: [assembly: System.Security.AllowPartiallyTrustedCallers] 或者改为[assembly:SecurityRules(SecurityRuleSet.Level1)]

4、更改XmlConfigurator.cs 中的settings.ProhibitDtd = false; 为settings.DtdProcessing = DtdProcessing.Parse;

http://www.cnblogs.com/sgsoft/archive/2011/03/22/1991976.html

最新文章

  1. cocos基础教程(12)点击交互的三种处理
  2. 为什么SQL语句加 1=1
  3. Ajax的常用框架有哪些?
  4. jquery创建动态的div
  5. iOS 开发之Block
  6. js事件绑定函数
  7. vue项目中遇到的问题
  8. [MySQL]理解关系型数据库4个事务隔离级别
  9. HTTP1.0 HTTP 1.1 HTTP 2.0主要区别
  10. 【转载】linux下的mount命令详解;
  11. Net 常用资源
  12. javaScript实现点击按钮直接打印
  13. FFMPEG推流到RTMP服务器命令 - weixin_37897683的博客 - CSDN博客 https://blog.csdn.net/weixin_37897683/article/details/81225228
  14. linux命令-df查看磁盘命令
  15. 轻松加减你的NSDate值
  16. hdu1133 Buy the Ticket (卡兰特数应用+java大数)
  17. nyoj_676_小明的求助_201312042142-2
  18. lua队列实现
  19. Robot Framework初步使用
  20. JAVA命令运行cmd命令得到的结果乱码Runtime.getRuntime().exec("");

热门文章

  1. Web安全之CSRF攻击
  2. C#联合Union的实现方式
  3. SAP中禁止特定用户更改密码
  4. System.Web.HttpException: 无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式下执行了类似的序列化,则适用同样的限制。 ---> System.Runtime.Serialization.Seria
  5. NSString的内存管理问题 (转载)
  6. macbook安装win7
  7. CentOS 6.3下MySQL 5.6源码安装
  8. 更换mysql数据目录后出现ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 的解决办法
  9. 万能面试问题大全,教你怎么回答,怎么拿下offer
  10. Vim指令备忘