Oracle &引用;“测试连接成功”;但是";ODP.NET托管驱动程序“中发生意外错误”;

Oracle &引用;“测试连接成功”;但是";ODP.NET托管驱动程序“中发生意外错误”;,oracle,visual-studio,visual-studio-2015,odp.net,odp.net-managed,Oracle,Visual Studio,Visual Studio 2015,Odp.net,Odp.net Managed,我想从Visual Studio 2015企业更新3连接Oracle。 安装了ODT For Visual Studio 2015后,要添加与数据提供程序Oracle数据库(ODP.NET托管驱动程序)的新连接弹出窗口似乎很奇怪,即使连接字符串为空,测试连接也会成功-添加了ss-当按“确定”时,会发生意外错误 64位计算机,卸载了ODAC,修复了Visual studio 2015并安装了vs 2015的ODT 感谢和问候 这很晚了,但是。。。我的案例中的问题是,ODT在更新之后不知何故失去了与

我想从Visual Studio 2015企业更新3连接Oracle。 安装了ODT For Visual Studio 2015后,要添加与数据提供程序Oracle数据库(ODP.NET托管驱动程序)的新连接弹出窗口似乎很奇怪,即使连接字符串为空,测试连接也会成功-添加了ss-当按“确定”时,会发生意外错误

64位计算机,卸载了ODAC,修复了Visual studio 2015并安装了vs 2015的ODT

感谢和问候


这很晚了,但是。。。我的案例中的问题是,ODT在更新之后不知何故失去了与TNSNAMES文件的连接。我得到了完全相同的错误:“在ODP.NET托管驱动程序中发生了意外错误”,但“测试连接”=成功

我所做的是卸载用于VS的ODT并重新安装。确保现在以管理员身份运行VS。下一步,我在连接时遇到另一个错误:“在可用别名列表中找不到xxxxx”。这是TNSNAMES.ora出错或未找到的线索

在VisualStudio中,通过“服务器资源管理器”->“修改连接”,现在将返回更为扩展的对话框

我单击“搜索…”按钮(在向导中)找到正确的Tnsnames.ora,然后选择复制选项将Tnsnames.ora复制到ODT想要的位置:“c:\program files(x86)\oracle developer tools for vs2017\network\admin\”。这里是你必须成为管理员的地方,否则复制会失败


在这一点上,您可以选择您的数据源名称,它应该可以工作。希望这对我有帮助,它确实解决了我的问题。您的步骤可能会有所不同,但问题是ODT在更新后丢失了它的TNSNAMES副本。

更新2019年11月22日

大家好

在浪费了数小时(甚至数年)试图用Visual Studio解决Oracle问题之后,我发现如果安装了VS2017和VS2019,并且重新安装了ODTforVSXXX,在我的例子ODTforVS2017_122011.exe中,安装程序会在最新的Visual Studio文件“devenv.exe.config”中添加所有设置,在本例中为VS2019。要解决此错误,必须将这些设置从“devenv.exe.config”(2019)复制到“devenv.exe.config”(2017)


我希望它能起到什么作用。
干杯

我也犯了同样的错误。问题似乎是:“数据提供程序没有IVsDataConnectionSupport实现。”。无论这意味着什么,除了Visual Studio 2017之外,我在原始帖子中描述了这个问题。VS2017有更新,安装更新后,我的ODP.NET连接无法工作。在通过Visual Studio安装程序卸载ODP.NET工具,然后重新安装ODP.NET工具后,问题消失了。这是真正的解决方案!谢谢!我的安装甚至在2017年和2019年都没有做到这一点。复制+粘贴从上面帮助!非常感谢。
<dependentAssembly>
    <assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
    <codeBase version="4.122.1.0" href="c:\program files (x86)\oracle developer tools for vs2017\odp.net\managed\common\oracle.manageddataaccess.dll" />
</dependentAssembly>
<dependentAssembly>
    <assemblyIdentity name="Oracle.ManagedDataAccess.EntityFramework" publicKeyToken="89b483f429c47342" culture="neutral" />
    <codeBase version="6.122.1.0" href="c:\program files (x86)\oracle developer tools for vs2017\odp.net\managed\common\ef6\oracle.manageddataaccess.entityframework.dll" />
</dependentAssembly>

<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.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
        <remove invariant="Microsoft.SqlServerCe.Client" />
        <remove invariant="Microsoft.SqlServerCe.Client.3.5" />
        <remove invariant="Microsoft.SqlServerCe.Client.4.0" />
        <add name="Microsoft SQL Server Compact 4.0 Client Data Provider" invariant="Microsoft.SqlServerCe.Client.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact 4.0 Client" type="Microsoft.SqlServerCe.Client.SqlCeClientFactory, Microsoft.SqlServerCe.Client, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
      </DbProviderFactories>
    </system.data>