问题标签 [enterprise-library-6]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
584 浏览

enterprise-library - 企业库 RollingFlatFileTraceListenerData JsonLogFormatter 文件格式

我正在寻找使 RollingFlatFileTraceListenerData 在使用 JsonLogFormatter 时创建有效的 JSON 文档的方法。与 XML 解析器一样,RollingFlatFileTraceListenerData 仅附加项目,只是为您提供添加项目页眉和页脚的选项,而不是更高级别的文件页眉、页脚页眉和项目分隔符。我意识到我可以在事后修改文件,但我宁愿使用有效格式构建流程。使用外部进程打开活动文件是有风险的,因为如果需要打开文件以再次记录,它可能会阻止记录进程。

电流输出:

首选:

0 投票
6 回答
9754 浏览

c# - entlib 6 记录器实例化中的错误

在为 Enterprise Library 6.0 日志记录组件设置日志写入器时出现异常。在第一次出现日志记录时,它会成功。但是对于连续调用它会引发异常:The LogWriter is already set.我尝试检查 Logger.Writer 是否不为空。但这在第一个实例中失败了,除了我应该使用 Logger.SetLogWriter 设置编写器。

这是我的代码:

0 投票
1 回答
7289 浏览

c# - 企业库异常处理 6.0 XML 日志不写入文件

我正在尝试设置企业库异常处理 6.0 以使用企业库日志记录应用程序块中的 XmlExceptionFormatter 记录错误。我没有收到任何错误,我可以让 Logging 自行工作。

这是我正在测试的控制台应用程序中的 App.config:

我的测试是:

有什么建议可以正确记录吗?

0 投票
1 回答
1675 浏览

c# - Call Oracle Stored Procedure with Char Out Parameter errors with PLS-00306: wrong number or types of arguments in call

我有以下 Oracle 存储过程:

我使用 ODP.NET 从 Enterprise Library 6.0 调用它,代码如下:

我收到以下错误: ORA-06550:第 1 行,第 7 列:\nPLS-00306:调用“SP_ITEMEXISTS”时参数的数量或类型错误\nORA-06550:第 1 行,第 7 列:\nPL/SQL:语句忽略

我有其他可以成功调用的存储过程,但其他有一个 refcursor OUT 参数。OUT 类型为 Char 时如何调用?

0 投票
1 回答
1051 浏览

c# - 企业库 ODP.NET 调用返回 ORA-06502:PL/SQL:数字或值错误

我有以下 Oracle 存储过程:

我使用 ODP.NET 从 Enterprise Library 6.0 调用它,代码如下:

我收到以下错误:ORA-06502: PL/SQL: numeric or value error

从 Oracle SQL Developer 调用存储过程有效。

0 投票
1 回答
1533 浏览

c# - 使用 Microsoft Enterprise Library LogWriter 进行连续记录

我有一个使用 Enterprise Library 6.0 进行日志记录的 C# .NET 应用程序。我已经声明了一个用于数据库日志记录的跟踪侦听器和另一个用于平面文件日志记录的跟踪侦听器。并准备好处理相同的日志类别“General”。

在我的应用程序中,当我调用 LogWriter.Write("Test Log", "General"); 一切都很好,我在数据库和平面文件中也看到了“测试日志”。

但是如果其中一个失败了;例如,当我调用 LogWriter.Write("Test Log", "General"); 假设数据库不可访问。我期望 LogWriter 只是将数据写入平面文件。

不幸的是,我没有看到任何日志都写在平面文件和数据库中。平常吗?是否可以为连续记录配置记录机制?(例如,如果其中一个跟踪侦听器失败,则继续下一个跟踪侦听器)

这是我的日志记录配置

这是我登录我的应用程序的地方:

0 投票
1 回答
493 浏览

c# - 避免创建虚拟变量来强制加载 .NET 程序集

背景:

我有一个使用 Enterprise Library 6.0 连接到 Oracle 数据库的 .NET 4.5 应用程序。为了使用 .NET 的 Oracle 数据提供程序,您必须使用 EntLibContrib.Data.OdpNet。

我有一个单独的项目和解决方案,其中包含连接到数据库并返回域对象的业务和数据访问逻辑。

问题:

我在另一个项目(在另一个解决方案中)中使用了这些程序集并遇到了问题。我添加了对以下内容的引用:

  • 通过构建其他解决方案生成的 .NET dll
  • Microsoft.Practices.EnterpriseLibrary.Common
  • Microsoft.Practices.EnterpriseLibrary.Data
  • EntLibContrib.Data.OdpNet

将适当的设置添加到配置后,它应该像在其他项目中一样工作——但是当我尝试连接到数据库时,我收到以下错误:

'EntLibContrib.Data.OdpNet.OracleDatabase, EntLibContrib.Data.OdpNet' 类型无法解析。请验证拼写是否正确或提供了完整的类型名称。

不久前我为这个错误创建了一个问题。我从未得到回应,但当我添加额外的配置信息时,问题似乎“自行修复”,但我从未深入研究导致问题的原因。

由于我再次遇到这个问题,我调查并缩小了范围,我需要引用一个属于 EntLibContrib.Data.OdpNet 的对象。如果我有一个引用一个对象,该对象引用一个属于 EntLibContrib.Data.OdpNet 的对象,它也可以工作。

我的解决方案只是在我的新项目的一个类中编写一个虚拟变量:

尽管 dummyVarNotUsed 从未使用过,但只需使用该行即可正确引用 EntLibContrib.Data.OdpNet 程序集。

这是一个 hack,有人可以阐明正在发生的事情以及如何更好地引用 dll 吗?

0 投票
2 回答
11604 浏览

logging - 企业库 6 LogCallHandler 抛出异常“The LogWriter has not been set for the Logger static class”

伙计们

我正在尝试将 LogCallHandler 用于拦截,如下所示:

此配置引发异常:“尚未为 Logger 静态类设置 LogWriter。设置它调用 Logger.SetLogWriter 方法。”

我使用运行时配置找到了这个问题的解决方案:

但是,我通过配置文件使用配置。如何在配置文件中重现此行为?

谢!

0 投票
1 回答
61 浏览

c# - 尝试使用 Enterprise library6 登录数据库

我可以登录平面文件,但不能登录数据库。

我正在使用企业库 6进行日志记录。

我无法登录数据库。

请提供一些解决方案

0 投票
1 回答
226 浏览

.net - 使用 Enterprise Library 和 Unity 时服务器没有放弃连接?

我遇到了一个非常奇怪的问题。我们将 Web Api 2.1 与 Enterprise Library 6 数据块和通过 Unity 的依赖注入一起使用。我开始注意到,如果我经常刷新我们的一个页面,最终我会得到可怕的“超时已过期。在从池中获取连接之前超时时间已过”错误。页面上只有大约 6 个 web api 调用。

大概企业库应该为我处理我的连接,所以我想知道它是否与我们使用 DI 和生命周期管理器有关?我们已经检查了我们的代码,并且我们在所有预期的地方都有“使用”块。

无论如何,我环顾四周所看到的:

检查 Sql Server sysprocesses 显示来自我们站点的连接相当低(最大约为 8)。我偶尔会看到我们的程序名称与空的登录名和 nt_username 字段的连接。我不确定那是关于什么的。这些连接最多可达 20 个,但也往往会很快消失(在几秒钟内)。

但是,检查我们的 Web api 站点的 PerfMon 中 SqlServer 的 .NET 数据提供程序的计数器显示池连接数快速攀升。几次刷新后,上述页面将很快达到 120~ 个连接。回收的连接数在相当长的一段时间内保持为 0。最终,它会在长时间不活动后飙升。我读过这表明连接不正确。

一旦达到 120~ 个池连接,即使 Sql Server 上的连接被放弃,api 站点将永远返回 500 个错误和连接池错误,这发生在 IIS 显示任何回收的连接之前。Sql Server 可能在 5 分钟不活动后放弃,而 IIS 将在 30 分钟后放弃。