c# - 如何用 web.config 部分替换 machine.config 的“oracle.manageddataaccess.client”部分
问题描述
早上好,我的应用程序使用 oracle.manageddataaccess.client,当通过 Nuget 安装 oracle.managedDataAccess 时,在我的 web.config 中创建了一个引用,如下所示:
<configSections>
<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess,
Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</configSections>
要运行我的应用程序,我需要 machine.config 文件中的相同部分。(Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config),machine.config文件如下:
问题是,每当我需要使用不同版本的 oracle 运行另一个应用程序时,就会出现重复键错误,因为在 web.config 中配置了一个版本,而在 machine.config 中,该部分配置了另一个版本。始终需要手动编辑文件 machine.config 并根据 web.config 的版本设置版本。
我试图解决这个问题的是:
- 添加
allowOverride="true"
web.config 部分(无法识别的属性) - 在部分中添加一个
<clear />
元素(不成功)
我发现在不需要放置手动版本的其他机器上, machine.config 使用 section oracle.dataaccess.client
,所以我研究是由于使用了非托管 odp.net 驱动程序,为此更改我的部分也不起作用。
有什么方法可以覆盖此部分吗?或用于oracle.dataaccess.client
解决此问题。
解决方案
我通过在 web.config 中使用以下内容使其工作:
<configSections>
<section name="new.oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</configSections>
稍后使用新的配置部分:
<new.oracle.manageddataaccess.client>
<version number="*">
<!--Oracle configuration settings-->
</version>
</new.oracle.manageddataaccess.client>
推荐阅读
- sockets - 八度套接字关闭
- ocaml - 将 lwt.t 代码放入 Ocaml 中用于 mirage os 的无限循环
- vue.js - vuetify上的google recaptcha 3真的没有出现吗?自动的?
- flutter - Flutter AlwaysScrollableScrollPhysics()不起作用
- javascript - Vue.js 范围问题
- powershell - 列出 Active Directory 中特定组织单位中用户的属性。有些不显示
- javascript - 功能没有定义?但它实际上是在按钮中定义的
- cookies - Chrome 80 中的 SameSite cookie 扩展更改将如何影响 Identity Server 4 用户?
- python - 如何使用 pandas 参考一个值创建虚拟变量?
- python - Hackerrank“切棒”挑战在调试中正确但不输出