问题标签 [enterprise-library-5]
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.
wcf - WCF & Enterprise Library - 异常屏蔽和验证应用程序块
我有一个 WCF 服务,它使用企业库进行异常处理和 WCF 验证集成。他们似乎没有一起工作。
我想要的是:
- 如果我的服务抛出任何类型的异常,WCF Exception Shielding 将捕获这个并抛出一个
FaultException<MyServiceFault>
. - 如果传入的消息验证失败,服务应该继续抛出一个
FaultException<ValidationFault>
.
但是,我不知道如何告诉异常屏蔽策略让验证异常通过。
我有一些企业库配置,可以将每个异常转换为FaultException<MyServiceFault>
. 如果我让 EnterpriseLibrary 记录它捕获的异常,它会说它得到一个
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.WCF.FaultContractWrapperException
当验证失败时。但是,如果将此异常作为一个新的添加到配置<exceptionType>
中postHandlingAction
,None
我仍然会FaultException<MyServiceFault>
在验证失败时被抛出。
是否可以使用 WCF 异常屏蔽来捕获除 WCF 验证异常之外的所有异常?如果没有,我将不得不为可能引发的所有不同异常添加更多配置——在这种情况下,异常屏蔽的意义何在?
logging - 企业库未正确记录严重性
我的企业库 5 有问题。它正在将我希望它写入的所有信息写入事件日志,但是,它不尊重我配置的严重性设置。
我的异常处理配置块如下所示:
我的事件日志侦听器模板以:
事件日志条目记录为“错误”,而不是“严重”,但实际记录的消息包含文本“严重性:严重”
关于我如何实际将异常记录为关键的任何指针,而无需实际编写我自己的异常处理程序/格式化程序?
.net - 平面文件中的异常处理日志
我在 asp.net 中使用 Microsoft Enterprise Library 5.0 进行异常处理。错误存储在系统的事件查看器中。我需要使用企业库将这些错误存储在日志文件(文本文件)中,而不是事件查看器。我该如何实施?
c# - 企业库 5.0 是否缓存数据读取器和访问器方法的自定义类之间的映射
想知道 Enterprise Library 5.0 的 Accessor 方法是否缓存 datareader 的字段以及自定义类以提高性能,这样它就不会使用反射在自定义类上查找字段名称,并且在将 datareader 映射到时不会在 datareader 上查找字段名称对象?因为将自定义类字段映射到每个访问/代码块的数据读取器字段是一项非常昂贵的操作
reference - 项目找不到企业库 Dll
我的项目似乎找不到我的企业库 dll,即使它们位于正确的文件夹中?为什么会发生这种情况?这是最新的企业库5.0.505.0...
查看我的 csproj 文件,它只包含每个 EnterpriseLibrary 文件的引用...为什么很难找到它们...
一切似乎都在上升。我会继续研究这个。也许我安装了错误的版本或类似的东西。
谢谢。
c#-4.0 - Enterprise Library 5.0 日志块自定义
在 .NET 4.0 中使用 Enterprise Library 5.0 日志记录块,这是我正在使用的唯一块,我试图自定义记录的信息以包括调用堆栈、调用程序集名称以及可能的行号。所以我去了我创建的文本格式化程序并添加了一些条目:
所以在匹配的文本格式化程序配置文件条目之后现在看起来像这样:
您可以在其中看到新添加的条目。但是当我运行它时,我的日志条目如下所示:
我还需要做些什么来查看记录的这些属性吗?如何添加完全自定义的属性,例如“行号”?
c# - Enterprise Library Logging 5 - 滚动平面文件
有没有办法始终将时间戳模式应用于我当前的日志文件?
这是我的来自 app.config 的日志文件侦听器的示例
现在,一旦我达到最大大小或日期更改,它就会重命名日志,但是有没有办法让初始日志文件显示时间戳模式?
我在我的日志文件夹中得到这个:
我想要这个:
这不是什么大不了的事,因为我可以查看修改/创建的日期,但如果能快速修复它会很好。
bulkinsert - 使用 Enterprise Library 5 批量插入
如何使用 Microsoft Enterprise Library 5 通过一次呼叫/行程执行批量插入记录?
deployment - Enterprise Lib 5.0 无法用于生产 (Windows Server 2008R2)
我在我的本地机器上使用 EntLib 5.0-April 2010 Logging(用于滚动平面文件、事件日志)并且一切正常,当我尝试在我们的 Web 服务器上投入生产时,它不起作用。
开发机器是Windows 7,使用VS2010。生产服务器是带有 Microsoft .NET Framework 4.0 的 Windows Server 2008 R2(使用网络帐户 - 不是管理员)
我将 LAB DLL 包括在项目中(Common、Logging、ServiceLocation),而不是 GAC。
有任何想法吗?我读了一些文章,他们认为生产许可引起的问题,对吗?
提前致谢
database - 无法构造类型数据库。您必须配置容器以提供此值 (EntLib 5 + ODP.NET)
我使用 ODP.NET 和 4.1 版的 Enterprise Library,与 2008 相比。一切都很好。
现在,使用企业库的 ODP.NET Oracle.DataAccess 4.112.2.0 和版本 5.0.414.0 与 2010 .net 4.0 进行迁移。
Oracle.DataAccess 4.112.2.0 EnterpriseLibrary 5.0.414.0
在最近从 Enterprise Library 的 4.1 版升级到 5.0 版之后,一旦我们收到以下错误:
“无法构造类型数据库。您必须配置容器以提供此值。”
Microsoft.Practices.ServiceLocation.ActivationException:尝试获取数据库类型的实例时发生激活错误,键“ConnectionStrings.Oracle.xxx”---> Microsoft.Practices.Unity.ResolutionFailedException:依赖项解析失败,类型=“Microsoft .Practices.EnterpriseLibrary.Data.Database”,名称 = “ConnectionStrings.Oracle.xxx”。异常发生时:解决时。异常是: InvalidOperationException - 无法构造类型数据库。您必须配置容器以提供此值。
参考 EntLib 论坛:http ://entlib.codeplex.com/discussions/215290
有什么解决办法吗??
我的配置
我的代码
完整的错误堆栈跟踪
Microsoft.Practices.ObjectBuilder2.DynamicMethodConstructorStrategy.GuardTypeIsNonPrimitive(IBuilderContext context, SelectedConstructor selectedConstructor) Microsoft.Practices.ObjectBuilder2.DynamicMethodConstructorStrategy.PreBuildUp(IBuilderContext context) Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(IBuilderContext context) Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlanCreatorPolicy。 CreatePlan(IBuilderContext 上下文,NamedTypeBuildKey buildKey)Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp(IBuilderContext 上下文)Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp(IBuilderContext 上下文)Microsoft.Practices.Unity.UnityContainer.DoBuildUp(类型 t,对象存在,字符串名称,IEnumerable
1 resolverOverrides) Microsoft.Practices.Unity.UnityContainer.DoBuildUp(Type t, Object existing, String name, IEnumerable
1 resolverOverrides) Microsoft.Practices.Unity.UnityContainer.Resolve(Type t, String name, ResolverOverride[] resolverOverrides) Microsoft.Practices.Unity.UnityServiceLocator.DoGetInstance(Type serviceType, String key) Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(键入 serviceType,字符串键)Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(键入 serviceType,字符串键)Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance[TService](字符串键)
更新
这段代码对我有用:
解决方案:由 Randy Levy ( http://entlib.codeplex.com/discussions/215290 )
您不能将企业库 OracleDatabase 与 Oracle.DataAccess.Client 提供程序一起使用。内置的 OracleDatabase 被硬编码为使用 OracleClientFactory DbProviderFactory,而您想使用 ODP.NET 提供程序 (Oracle.DataAccess.Client)。
最好的方法是让 EntLibContrib Oracle ODP.NET 数据提供程序工作,因为它应该支持您需要的所有内容,包括配置文件。
由于看起来您可以创建 DbProviderFactory,您可以尝试将 GenericDatabase 与 ODP.NET OracleClientFactory 一起使用,但我猜您会遇到特定 Oracle 功能(例如,refcursor)的问题。
你可以直接使用它: