创建 loggingConfiguration 的配置节处理程序时出错: 未能加载文件或程序集“Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=

此错误信息我查过很多资料,大部分资料介绍的信息都是互相拷贝的。按照上面的解决办法执行解决不了问题。

他们说的解决方法好像没有讲到本质问题。都是肤浅的掠过问题。

以下是网上流行的解决方法:(本人尝试后没有解决问题,大家看后试试。)

1. 首先检查你的WEB.CONFIG文件是否正确,配置文件不对也会出现类似问题。

下面是Logging 和 Data Application Block 的配置,可供参考:
    <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />


如果配置文件正确,那就是DLL引用问题,你配置文件与你引用的DLL不匹配。

2. 是不是数字签名不匹配引起问题。

网上说改为PublicKeyToken=null就可以了。

我以前的访问数据库时就是这样设定的,是带有PublicKeyToken 的。

原因:PublicKeyToken=null时,DLL是没有数字签名的,但如果直接引用安装企业库时生成的DLL就不匹配了,因为安装生成的DLL是签了名的。

这时要引用通过自己电脑编译时生成的企业库DLL,它是没有签名的。配置文件有PublicKeyToken=31bf3856ad364e35 时就要引用安装时产生的DLL,如果引用自己编译生成的DLL就会不匹配,然后报异常。

自己电脑编译时生成的企业库DLL是指打开企业库源码然后编译企业库,在DEBUG BIN目录下的DLL文件。

如果希望带有 PublicKeyToken=31bf3856ad364e35,解决办法如下。
解决:直接从安装目录(一般为C:\Program Files\...)中引用DLL。

在我浏览大量资料后发现,确认是引用版本和 web.config 里面配置的版本信息不一致造成的。

然后本人就在配置文件中做以下修改:

1。PublicKeyToken=31bf3856ad364e35 修改为PublicKeyToken=NULL

2。把版本信息修改为 所引用dll一样的版本号。

3。以上两步修改应该注意:

  不仅要在节点:<section name="loggingConfiguration" ....>和<section name="dataConfiguration" .....>里面修改上两步操作。

  在<loggingConfiguration name="Logging Application Block" tracingEnabled="true"...........>里面涉及到的也应该做修改。

 

本人尝试后问题解决。测试OK.

这个结论拿出来分享下,希望对大家有用......

原文地址:https://www.cnblogs.com/hyd309/p/1901266.html