Nhibernate Log4net:进程无法访问该文件,因为另一个进程正在使用该文件
我有一个asp.net网站正在利用log4net。由于有几个第三方库(如NHibernate),多个线程中有几个appender。IIS已设置,因此应该只有一个进程。我已经通过使用文件名中的进程id确认了这一点 Web.config摘录:Nhibernate Log4net:进程无法访问该文件,因为另一个进程正在使用该文件,nhibernate,log4net,websync,Nhibernate,Log4net,Websync,我有一个asp.net网站正在利用log4net。由于有几个第三方库(如NHibernate),多个线程中有几个appender。IIS已设置,因此应该只有一个进程。我已经通过使用文件名中的进程id确认了这一点 Web.config摘录: <appender name="AppAppender" type="log4net.Appender.RollingFileAppender"> <file type="log4net.Util.PatternString" val
<appender name="AppAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="Logs\App_[%processid]_.log" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value="yyyy-MM-dd" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="false" />
<preserveLogFileNameExtension value="true" />
<threshold value="DEBUG" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value=" %date %-5level [%property{SessionId}] - %message%newline" />
</layout>
</appender>
我的问题是,这些错误中的一些是不可避免的,因为它是多线程的,或者如果配置正确,它们永远不会发生
其他信息:
- 我正在使用log4net1.2.13(安装在nuget上)
- 冰冻山的WebSync(3.5.1.3)也注意到这个库直接引用了Log4Net1.2.11,我使用了一个绑定重定向到1.2.13
- NHibernate版本3.1.0.400,这是第一个不使用log4net 1.2.10的版本
**如果我们认为这是问题所在,NHibernate可以很容易地升级。WebSync将更加困难。您是否只在回收应用程序池时,而不是在正常操作期间,才会出现这些错误?生产站点正在使用log4net 1.2.10,它还存在一些其他问题(但在正常使用期间确实存在)。我的开发站点在正常使用期间(仅在应用程序池回收期间)没有显示该问题。然而,它还没有经过足够的测试,不能确定地说。
log4net:ERROR [RollingFileAppender] ErrorCode: GenericFailure. Unable to acquire lock on file App_[6844]_2014-12-18.log. Access to the path 'App_[6844]_2014-12-18.log' is denied.