我们正在开发一个连接到oracle数据库的Windows服务。我们用 来自 Nuget 包的 Oracle ManagedDataAccess。 运行 Windows 服务时,我们收到以下错误。尝试从 stackoverflows 获取详细信息,但没有任何方法可以解决问题。 我们的配置文件如下
无法加载文件或程序集“Oracle.ManagedDataAccess, 版本=4.122.19.1,文化=中性,PublicKeyToken=89b483f429c47342' 或其依赖项之一
配置
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="eClaimsService.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
<section name="oracle.manageddataaccess.client"
type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
</sectionGroup>
</configSections>
<system.data>
<DbProviderFactories>
<remove invariant="Oracle.ManagedDataAccess.Client"/>
<add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver"
type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.122.19.1, Culture=neutral, PublicKeyToken=89b483f429c47342"/>
</DbProviderFactories>
</system.data>
<system.web>
<httpRuntime executionTimeout="3600" requestValidationMode="2.0" maxRequestLength="10240"/>
<sessionState mode="InProc" timeout="60"/>
<pages validateRequest="false" />
</system.web>
</configuration>
当我的 App.Config 包含旧版本的 DLL 时,我收到此错误,我刚刚从 App.Config 中删除了此条目并且它起作用了
就我而言,只需转到 Visual Studio 20xx 开发人员命令提示符并以管理员身份打开。
然后运行命令
C:\Windows\System32>gacutil /u Oracle.ManagedDataAccess
并且您可以成功卸载数据。
现在我可以毫无错误地访问应用程序了。
我在使用oracle的Sql服务器迁移助手工具进行数据迁移时收到此问题,通过重新安装应用程序解决了这个问题。