我有 ASP.NET MVC 项目,它使用 Oracle.ManagedDataAccess.dll 连接到 Oracle 数据库,因此我不需要在部署应用程序的任何计算机上安装 Oracle 客户端。是否有任何选项可以配置 ELMAH 以使用 Oracle.ManagedDataAccess.dll? 换句话说,据我了解,ELMAH只能使用Oracle客户端?
ELMAH 的 Oracle 错误记录器的最新版本,实际上支持 Oracle 客户端和 Oracle 自己的 .NET 客户端:
https://github.com/elmah/Elmah/blob/master/src/Elmah.Oracle/OracleErrorLog.cs#L429
ELMAH 还没有包含此错误记录器的 2.x NuGet 包。您可以从 GitHub 克隆 ELMAH 存储库,并通过源代码管理、内部 NuGet 服务器或 MyGet 分发它。或者,您可以创建自己的错误日志实现:为 ELMAH 编写自定义错误记录器。
这是我的 web.config 中的代码。
<sectionGroup name="elmah">
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
</sectionGroup>
<modules runAllManagedModulesForAllRequests="true">
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
</modules>
<system.webServer>
<handlers>
<add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
</handlers>
</system.webServer>
<elmah>
<security allowRemoteAccess="1" />
<errorLog type="Elmah.OracleErrorLog, Elmah" connectionStringName="elmah-oracle" schemaOwner="" />
</elmah>
<add name="elmah-oracle" connectionString="USER ID=...;DATA SOURCE=...;PASSWORD=..." providerName="Oracle.DataAccess.Client" />