Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在运行时设置oracle.dataaccess.client设置的DllPath值_Asp.net_C# 4.0_Web Config_Odp.net_Oracleclient - Fatal编程技术网

Asp.net 在运行时设置oracle.dataaccess.client设置的DllPath值

Asp.net 在运行时设置oracle.dataaccess.client设置的DllPath值,asp.net,c#-4.0,web-config,odp.net,oracleclient,Asp.net,C# 4.0,Web Config,Odp.net,Oracleclient,我有补充 <oracle.dataaccess.client> <settings> <add name="DllPath" value="<application_path>\bin"/> </settings> </oracle.dataaccess.client> 到我的web.config 是否可以在运行时设置DllPath值..您需要删除现有的设置,该设置可以从配置中完成。问题是从m

我有补充

<oracle.dataaccess.client>
   <settings>
       <add name="DllPath" value="<application_path>\bin"/>
   </settings>
</oracle.dataaccess.client>

到我的web.config


是否可以在运行时设置DllPath值..

您需要删除现有的设置,该设置可以从配置中完成。问题是从machine.config等文件中获取当前设置

您可以使用这样的配置来实现这一点,位置在app.config或web.config中

  <system.data>
    <DbProviderFactories>
      <remove invariant="Oracle.DataAccess.Client" />
      <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET"
           type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=2.112.3.0, Culture=neutral, 
           PublicKeyToken=89b483f429c47342"/>
    </DbProviderFactories>
  </system.data>


上述配置将删除当前引用并替换将从您的bin文件夹中获取的版本2.112.3.0的条目。

您可以将必要的DLL复制到您的webapp的
bin
文件夹中。我有DLL,但它不会影响计算机上是否安装了其他客户端。因为它引用了另一个带有注册表项的路径。所以,据我所知,只有一种方法可以覆盖它。