log4net在sql server中成功,但不能写入access?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了log4net在sql server中成功,但不能写入access?相关的知识,希望对你有一定的参考价值。

access限己设置为everyone,
<!--<logger name="LogRecord">--> <!--y-->
<root>
<level value="ALL"/>
<!-- 输入sql server-->
<appender-ref ref="AdoNetAppender_SqlServer"/>

<!-- 输入Access-->
<appender-ref ref="AdoNetAppender_Access" />
</root>
<!--</logger>-->

<!--定义输出到数据库中,这里举例输出到Access数据库中,数据库为D盘的log4net.mdb-->
<appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\log4net.mdb" />
<commandText value="INSERT INTO LogDetails([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" />
<!--定义各个参数-->
<parameter>
<parameterName value="@logDate" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date" />
</layout>
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter>
<parameter>
<parameterName value="@logLevel" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="240" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
</appender>
且数据库中参数是对应的,不知为何不能插入数据,请高人指点。。。。

参考技术A 我也遇到这个问题,在控制台程序中可以,但WINFORM里不可以。

去除 [STAThread] 就可以了,呵呵。搞 了一下午才搞明白。
参考技术B 目录的权限打开

SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误

SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误

最近在VS2013上连接远程数据库时,突然连接不上,在跑MSTest下跑的时候,QTAgent32 crash。换成IIS下运行的时候,IIS crash。之前的连接是没问题的,后网上找了资料,根据牛人所说的方案解决了。

 

1. Exception message

已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: SSL Provider, error: 0 - 接收到的消息异常,或格式不正确。) ---> System.ComponentModel.Win32Exception: 接收到的消息异常,或格式不正确。

 

2. Solution

以管理员的身份运行“命令管理器”,输入:netsh winsock reset回车即可,这个重置LSP连接

3. LSP 相关(来自http://tech.sina.com.cn/s/2009-11-13/14203590640.shtml

关于Winsock LSP“浏览器劫持”,中招者一直高居不下,由于其特殊性,直接删除而不恢复LSP的正常状态很可能会导致无法上网所以对其修复需慎重。

  先说说什么是Winsock LSP“浏览器劫持”.Winsock LSP全称Windows Socket Layered Service Provider(分层服务提供商),它是Windows底层网络Socker通信需要经过的大门。一些流氓软件可以把自已加进去,就可以截取、访问、修 改网络的数据包,可以随意添加广告,还能获取你的浏览习惯。这里加进的是木马,后果可想而知。而且因为LSP工作在底层,所以无论你用什么浏览器,都逃不 了经过它。而LSP中的dll文件被删除后,就会出现无法上网的情况。

  LSP服务在注册表中的位置 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock\Parameters\NameSpace_Catalog5\Catalog_Entries, 默认系统已有LSP,分别负责TCP/IP组件(mswsock.dll)和NTDS组件(winrnr.dll)的正常工作,它们的项分别为 000000000001和000000000002,这两个项表示优先权,如果恶意程序想要劫持,只要将自身的项改为000000000001,将系统 项依次推后即可,这样就可以优先处理恶意程序了。

  解决办法:

  方法1.360的LSP修复功能来修复。如果提示你的“LSP没有异常,不用修复”,但是你还是上不了网,执行ping命令,在ip地址处会出现(?),无法ping通外网。那么你就用360的“恢复Winsock LSP到初始状态”的功能。

  方法2.就是大家熟悉的,也就是常用的方法,用LSPFix这个工具在断开网络下修复

  方法3.Windows XP Service Pack 2 中有两个新增的 Netsh 命令。

  " netsh winsock reset catalog   该命令将 Winsock 目录重置为默认配置。如果安装了可导致网络连接丢失的不正确的 LSP,该命令会很有用。尽管使用该命令可以还原网络连接,但应该慎重使用,因为以前安装的 LSP 都将需要重新安装。

  " netsh winsock show catalog   该命令会显示安装在计算机上的 Winsock LSP 列表。

  所以呢,我们在没有任何辅助工具的情况下可以用netsh winsock reset命令来重置Winsock

 

转自:http://www.cnblogs.com/caijingui/p/3612970.html

以上是关于log4net在sql server中成功,但不能写入access?的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误

Sql Server 2005导入的数据库为啥是只读,在属性中把数据库为只读修改为False不能成功,

C# log4net 配置及使用详解--日志保存到文件和Access(转)

SQLserver数据库中,在啥情况下删除数据不能成功?

SQL SERVER 2008只能用windows用户登录,不能用SQL SERVER 用户验证登录,很是头疼,希望高手给指点指点

连接丢失时如何重新连接 SQL Server 很乏味