错误:通过ODBC将IIS日志写入SQL Server数据库

时间:2014-02-18 19:31:00

标签: iis logging odbc iis-7.5 dsn

我正在尝试将IIS日志存入数据库。按照本网站http://blog.datacenterfromhell.net/2013/08/how-to-write-iis-logs-to-database-using.html

中给出的步骤进行操作

它似乎不起作用,在Windows事件日志中出错。 EventID:1016 错误:万维网发布服务(WWW服务)未配置站点1的日志记录。数据字段包含错误号。

环境: 操作系统 - Windows 7 DB - SQL Server 2008 R2 Express版

如果您之前遇到过相同的错误,请提供帮助。

谢谢,Naveen

已添加步骤:

第1步:创建数据库

在任何Microsoft SQL服务器上创建一个空数据库。确保用于为网站提供服务的应用程序池的标识具有对此数据库的写访问权。

第2步:使用logtemp.sql脚本创建表

在C:\ Windows \ System32 \ inetsrv \中,您将找到一个名为logtemp.sql的脚本,用它在您刚刚创建的数据库中创建一个表。

步骤3:在Web服务器上创建指向

的系统DSN

在Web服务器上创建一个指向在步骤1中创建的DB的系统DSN。 我建议使用IIS应用程序池的标识来配置ODBC连接,因为此帐户稍后还会将日志数据写入数据库。我们来调用我们的DSN IISLoggingDSN。 在这篇文章中,我解释了如何创建系统DSN。

第4步:列出ODBCLogging设置

打开提升的cmd并将目录更改为C:\ Windows \ System32 \ inetsrv> 要获取到目前为止配置的所有ODBCLogging设置的列表,请运行此命令。

C:\ Windows \ System32下\ INETSRV> appcmd list config -section:ODBCLogging

这应该是空的。

步骤5:设置ODBCLogging设置

要设置ODBCLogging连接,请发出以下命令:

appcmd set config -section:ODBCLogging -datasource:IISLoggingDSN -tableName:InternetLog -username:DOMAIN \ IISLogsUser -password:P @ SSwoRD $

让我解释一下开关: -section:我们要配置的SectionName

-datasource:我们在步骤3中配置的DSN的名称。

-tableName:数据库中表的名称

-username:具有写入数据库权限的Active Directory域帐户

-password:该用户的密码,它将以加密方式存储在配置文件中

步骤6:为一个网站启用ODBCLogging

要启用网站的日志记录,请运行此命令。

C:\ Windows \ System32下\ INETSRV> appcmd set sites“Default Web Site”-logFile.logFormat:Custom -logFile.customLogPluginClsid:{FF16065B-DE82-11CF-BC0A-00AA006111E0}

重要信息:customLogPluginClsid属性必须设置为“{FF16065B-DE82-11CF-BC0A-00AA006111E0}” 我从Microsoft文档中获取此ID。它定义自定义格式是ODBCLogging。 让我整理这些开关:

-sites:将写入日志的网站,我使用“默认网站”进行了测试

-logFile.logFormat:通过配置 Custom ,我们配置将使用自定义格式

-logFile.customLogPluginClsid:{FF16065B-DE82-11CF-BC0A-00AA006111E0}:见上文

1 个答案:

答案 0 :(得分:0)

Naveen,你是否符合所有先决条件?

  • 应将其日志写入数据库的IIS网站必须由使用AD域帐户标识运行的应用程序池提供服务。
  • 相同的AD域帐户必须具有对将成为IIS日志目标的数据库的RW访问权限。
  • 必须在IIS服务器上安装ODBC和自定义日志记录

几个月前我写了这篇博文。您也可以通过博客的评论与我联系。