我获得了一个MVC网站,并使用log4net来记录日志。
在Web应用程序中,我将用户信息存储在会话中,在执行一个操作后添加一些信息。然后当我返回主页时会丢失会话(只需输入主页的URL)。
我确信会话丢失了与“Response.Redirect()”或其他内容无关,因为我测试了应用程序并发现它会在我评论lockModel属性后恢复,其值为“log4net.Appender” log4net配置文件中的.FileAppender + MinimalLock。
以下是配置:
<?xml version="1.0"?>
<log4net debug="true">
<appender name="AllInfoRollingAppender" type="log4net.Appender.RollingFileAppender">
<file value="bin\\Log\\AllInfo-UniqueBlog-" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<appendToFile value="true" />
<staticLogFileName value="false" />
<rollingStyle value="Composite" />
<datePattern value="yyyy-MM-dd.LOG" />
<maximumFileSize value="1M" />
<maxSizeRollBackups value="4" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger: %message%newline%exception" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="AllInfoRollingAppender" />
</root>
</log4net>
所以我认为log4net配置中的“lockingModel”属性会导致此错误,但我不知道原因,并且它不会在那里抛出任何错误,是否有人遇到此错误?我发现这是不可思议的,因为这不应该导致这个问题。
答案 0 :(得分:0)
你的问题完全不可读。但是我必须检查一些事情。如果会话丢失,请在Session.Redirec()之前或之后进行登录。如果您在会话重定向后记录,则永远不会触发您的代码。重定向结束当前线程。接下来你可以启用log4net调试:
<select id="test"></select>
如果log4net中发生了错误,您将在日志中看到它。