问题标签 [enterprise-library]

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 投票
5 回答
2219 浏览

.net - 如何在 .NET 自定义操作中使用企业库日志记录

我有一些从我的应用程序中使用的库代码,也被 Visual Studio 安装程序项目中的 .NET 自定义操作使用。库代码反过来使用企业库日志记录块来进行日志记录。如何在 msiexec 中运行的自定义操作的上下文中将配置信息获取到企业库?在我对 EntLib 进行任何调用之前,是否可以在代码中引导配置机制?

更新:我制作了一个看起来可以工作但依赖于使用反射设置非公共静态字段的hack。EntLib 与 .NET ConfigurationManager 的耦合如此紧密,这是一种耻辱。

更新 2:虽然该 hack 在测试平台中有效,但在 msiexec 的上下文中运行时,程序集加载器找不到配置文件中引用的程序集。fuslogvw表示AppBase是windows system32目录,这有点意思。我不明白为什么会找到自定义操作程序集的清单依赖项(位于自定义操作程序集旁边的 [TargetDir] 目录中),但在配置文件中调用的动态加载程序集却没有。看不到任何解决方法。

0 投票
1 回答
684 浏览

asp.net - 如何在 VAB 中创建一个同时测试两个属性的自定义验证器?

在我的数据库中,我有一个实体上的复合唯一键约束 (CustomerId, Name)。我想在向数据库提交更改之前测试是否支持唯一约束。用户可以自定义实体上的 Name 属性,因此我想制作一个自定义验证器来验证 name 属性,但是在执行此操作时,我还需要访问 CustomerId 属性。我怎么做?

我正在使用 WCSF,这意味着我被困在 Entlib 3.1 和包含的 VAB 中,但我想可以在不破坏 WCSF 的情况下切换到 EntLib 4.1 的 VAB。

问候,埃吉尔。

0 投票
1 回答
490 浏览

logging - 企业库日志记录:TraceListeners 问题

例如,是否可以将某些事件记录到 -> 事件日志,而将其他事件记录到 -> 文件跟踪侦听器,而其他事件仍然记录到 -> SQL 数据库。

我希望能够在某处进行配置,以便错误转到文本,详细信息转到 SQL,而警告转到(事件查看器和文本)。

这种事情可能吗?

0 投票
4 回答
9707 浏览

c# - System.IO.FileLoadException

使用 Enterprise Library 3.1 May 2007 版本时出现此错误。我们正在开发一个产品,并且在 Subversion Trunk 目录下有一个公共的 lib 目录

<>\Trunk\Lib\ 我们将所有第三方 DLL 放入其中。在其中我们有 Microsoft\EnterpriseLibrary\v3.1,我们在其中复制了 \Program Files\Microsoft Enterprise Library May2007\bin 中的所有 dll。在其中一位开发人员在这台机器上安装源代码之前,一切都正常工作。在源代码安装结束时复制了一些 dll,一旦完成,他就无法再运行该项目了。他总是得到这个错误

'Microsoft.Practices.EnterpriseLibrary.Data, Version=3.1.0.0, Culture=neutral, PublicKeyToken=null' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)'

这里有什么问题?我认为在安装源代码时,它只是应该构建所有内容并复制到源代码父目录中的 bin 目录中。此外,我们已将 Microsoft Enterprise Library May 2007\bin 目录中的 Dll 复制到我们的产品开发目录中,并在将 copylocal 标志设置为 true 的情况下引用到我们的项目中。

有谁可以帮我离开这里吗

RK

0 投票
1 回答
5373 浏览

.net - 使用异常处理应用程序块将异常记录到数据库的示例 sql

任何人都可以提供(或指向我)使用企业库异常处理应用程序块(EHAB)记录异常的示例 sql 代码吗?即,我希望结构和过程的标准 CREATE TABLE 和 CREATE PROCEDURE 语句将记录的异常存储在 SQL Server 数据库中。

此外,任何人都可以描述应用程序块如何调用过程 [WriteLogStoredProcedureName] 和 [AddCategoryStoredProcedureName] (例如,它们应该具有哪些参数以及它们是如何设置的)或文档在哪里?

(注意:我使用的是 Enterprise Library 3.1 - 2007 年 5 月,因为我使用的是 .net 2.0)

0 投票
1 回答
976 浏览

database - DAAB,使用数据库实例的最佳方法是

伙计们,我将使用 Enterprise Library (4.1),尤其是 DAAB。这是我有问题:

  1. 什么是最好的方法,为什么:

    • 每次需要运行 DbCommand 时,我都会使用 DatabaseFactory.CreateDatabase(); 创建数据库实例。

    • 我有一个带有实例数据库的基类(使用相同的 CreateDatabase() 静态方法)和返回实例数据库的公共属性之类的东西。

  2. 创建数据库类的实例有多“重”或快/慢?如果每次需要 DbCommand 时我都这样做会怎样?

谢谢你。

0 投票
2 回答
2399 浏览

.net - Entlib 和互操作:它有效吗,配置文件在哪里?

我正在尝试将.net 代码中的 EntLib 3.1 用于为 COM 互操作注册的 dll。我在哪里放置配置文件?

或者,有没有办法在 dll 代码中指定它应该从哪里获取 entlib 配置?由于我的 dll 将从 COM 调用,所以我并不总是知道什么 exe 会调用它。

我创建了一个使用 entlib Logging 的简单应用程序,它有两个类:“CallingApp”和“MyComThing”。当我从 CallingApp 调用 MyComThing 的方法时,它会使用 CallingApp 的配置文件中的配置进行记录。当我从 vbs 脚本(即通过 COM)调用 MyComThing 的方法时,出现错误“在配置源中找不到 Logging 的配置部分”。我的 COMThing.dll.config 文件与注册的 COMThing.dll 位于同一文件夹中,即 bin\debug\ 文件夹中。

谢谢!

0 投票
1 回答
112 浏览

c# - 是否有任何将异常转换为 HTML (C#) 的好的 OSS 实例?

使用 EntLib 4.1 并希望 Exception 块发送包含错误信息的电子邮件。这一切都很好,但开箱即用,我可以使用 Text 或 Xml 格式化程序。我会喜欢一个 Html 表示,它会带来其他信息,例如浏览器、http 标头等。几年前我写了一个,但不再有源代码,我在谷歌上的点击量不足,所以我想我会问 SO 社区和看看是否有人知道在互联网的一系列管子中漂浮着什么东西。

0 投票
2 回答
1341 浏览

encryption - 使用可导出的密钥提供程序加密外部存储的应用程序块

我已经尝试了很长一段时间来弄清楚如何加密存储在名为 dev_entlib.config 的外部文件中的应用程序块

我可以在 entlib (4.1) 中看到可以使用默认保护提供程序来加密块,但是,我确实需要在不同的服务器上部署这个应用程序,因此我需要将用于加密应用程序块的 keyProvider 导出到那些服务器。

到目前为止,我所做的是将自定义受保护的配置提供程序添加到 .net v2.0* 任何文件夹(以及所有目标服务器)中的 machine.config 文件中

自定义提供者是这样的

它很好地位于其他默认提供程序旁边,甚至在 Entlib 配置工具中具有设计时支持。然后,我为要加密的每个块选择保护提供程序。

查看 dev_entlib.config,表明该块确实是用我的提供者加密的。我的提供者使用我的密钥容器。因此,应该使用我的密钥容器对块进行加密。然后我使用以下方法将“MyKey”导出到 xml 文件:

然后将此密钥文件复制到我的 sysTest 服务器,并在该服务器中导入并授予“NT Authority\Network Services”和“ASPNET”访问权限

然后我复制我的加密 web.config 和 dev_entlib.config 并尝试在一个小页面中显示连接字符串,该页面使用 .net ConfigurationManager 获取 ConnectionStrings 集合并将它们显示在页面上。此页面在 IIS 下运行,进程标识为“NT Authority\Network Services”。

问题是,它不起作用!存在错误数据错误或“无法使用提供程序 MyCompanyProvider 解密”。

这种方法对我来说似乎合乎逻辑,但它仍然失败。

有人有其他建议吗?

0 投票
2 回答
896 浏览

.net - 如何为 EntLib 缓存刷新进程中的所有缓存

我想知道是否有办法告诉企业库缓存对象刷新所有已配置的缓存以使该进程刷新。

即使枚举该进程的所有已配置缓存,并手动刷新每个缓存,也可以,但是是否有来自 EntLib.Caching 的 API 方法可以为我提供这些值?

还是我需要自己枚举配置文件?