2019.5.23 更新


突然发现原来是是sqlnet.ora在搞鬼,只要将SQLNET.AUTHENTICATION_SERVICES=(nts)  改为 SQLNET.AUTHENTICATION_SERVICES=(NONE) 就可以了。

百度关于SQLNET.ORA 的有关信息

ODT对该异常的提示信息又不恰当,导致我们在原地打转。正确的异常的应该是提示“Credential retrieval failed”。

错误截图

同事没有遇到这个问题,很有可能一个原因就是他的ODT不是读取ODT安装后的SQLNET.ORA文件,而是定位到了Oracle Home下的文件,因为他们要运行PL/SQL ,所以先装Oracle Home,之后再安装ODT。 我是直接装ODT没有搞任何东西。

原文


昨天在使用VS通过ODT连接数据库扒模型的时候发现了这个异常。经过测试,发现这个异常是因为 ODT 插件无法识别服务名中的“.”字符 导致的,比如“orcl.asian.com”。其他不包含“.”字符的服务名皆可正常连接。做了下简单的回溯,一个月前的ODT插件是正常工作的,期间数据库未作任何改动。唯独Windows 和Visual Studio更新过。随后测试了相同版本的Visual Studio(Visual Studio Community 2017 15.9.12)在Windows 7 下的连接测试,结果是连接成功。

异常截图

Google 中有一些相关的文章,大致围绕在几个点上:

第三种方式停用MS Account 能解决这个问题。自己也顺便用虚拟机做了不同版本的测试,结果不太理想,所有登录的Windows 10都失败了。但同事的1803装183000的ODT就算登录也是能够正常连接,对比不同点有几个:一是VS 2017的版本并非是我测试时的15.9而是Older Version。二是Windows 使用Administrator 登录MS账户。

使用ODAC替换ODT也可以解决掉这个异常,好奇登录MS 账户之后,Windows 到底进行了些什么操作?一个托管组件为什么会受到MS 账户的影响呢?为什么ODT不行,使用ODAC就可以?先Mark起来,后面有时间再细查。

总结

ODT插件是在Visual Studio一启动就加载进内存了,所以,如果是在登录MS 账户之前打开VS,那么ODT仍然是正常工作的,直到你关闭VS。解决这个异常除了上面说的切换MS Account 外,还有下面几个。

1. 使用Oracle Data Access Components(可能会遇到Credential retrieval failed的问题,见Credential retrieval failed 的解决方法)。

2. 更换Windows 版本。

Visual Studio 2017使用ODT 连接Oracle 数据库出现异常的更多相关文章

  1. Visual Studio 2017 for Mac 连接Git的奇怪问题

    VS for Mac连接Git的时候遇到个奇怪的问题, 无法将已存在的解决方案绑定并提交到GitHub中去. VS版本7.3.3 问题复现 以为自己操作有问题, 新建项目测试一下, 新建的时候没有勾选 ...

  2. 在Visual Studio 2017中,.NET(C#)通过Oracle.ManagedDataAccess来连接Oracle数据库

    C#如何通过Oracle.ManagedDataAccess来连接Oracle数据库 1.先创建一个项目,鼠标右击项目中的引用,再点击管理NuGet程序包(也可以先下载dll文件,再选添加引用),在搜 ...

  3. Visual Studio 2017 连接Oracle

    VS 2017 连接 Oracle 12 因为Visual Studio自带的数据文件已经不能支持超过10g以上的了,所以需要另外 下载插件 本机环境 宿主机的环境:win7,Visual Studi ...

  4. visual studio 2017使用NHibernate4.0连接oracle11g数据库

    之前一直是公司用NHibernate2.1来做项目,连接oracle 10g的数据库,配置NHibernate的东西都是以前的同事做好了的,也怪自己太懒了,没尝试过配置这个东西,虽然一直在使用NHib ...

  5. 64 位win 7或windows 8下的visual studio不能连接Oracle数据库调试网站的问题

    在64 位win 7或windows 8系统下,visual studio直接F5运行网站调试,你会发现不能连接Oracle数据库,会报一个“ORA-06413: Connection not ope ...

  6. 在Visual studio 2017中使用EF6连接MySQL

    在Visual studio 2017中使用EF6连接Mysql ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) ...

  7. 使用Visual Studio 2017作为Linux C++开发工具

    Visual Studio 2017 微软的宇宙第一IDE Visual Studio 2017正式版出来了,地址是:https://www.visualstudio.com/vs/whatsnew/ ...

  8. Visual Studio 2017 Enterprise (15.3)

    版本15.3更新在用户离线下载时更加人性化,包含了进度显示,下载出错可以输入R,进行下载的重新尝试,并在当前下载框下继续下载为完成的作业,结合 --layout 参数的离线文件的检查和修复,并且在下载 ...

  9. Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)

    Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer   Advanced Installer :Free for 30 da ...

随机推荐

  1. 0基础入门学习Python(第4章)

    第四章,了不起的分支和循环 4.1 分支和循环 Python主要依靠缩进来区分代码块 4.2 快速上手 成绩按照分数来划分等级,90分以上为A,80~90 为B,60~80 为C,60以下为D p4_ ...

  2. [转]Oracle 11g R2 RAC高可用连接特性 – SCAN详解

    原文地址:http://czmmiao.iteye.com/blog/2124373   昨天帮朋友解决11g RAC SCAN问题,当时为这朋友简单解答了一些SCAN特性相关的问题,但我知道这仅仅是 ...

  3. nginx location 配置详解

    指令作用 匹配指定的请求uri(请求uri不包含查询字符串,如http://localhost:8080/test?id=10,请求uri是/test) 语法形式 location [ = | ~ | ...

  4. SpringBoot 全局异常配置

    在日常web开发中发生了异常,往往是需要通过一个统一的异常处理来保证客户端能够收到友好的提示. 一.默认异常机制 默认异常处理(SpringBoot 默认提供了两种机制,一种是针对于web浏览器访问的 ...

  5. django框架创建app及使用、

    App 创建一个app : python manage.py startapp app01 admin: from django.contrib import admin # Register you ...

  6. java调用含第三方库的py文件

    这是一个心酸的历程. py文件如下: 这里调用出现的问题主要是第三方包的问题,因为你的py文件里可能含有很多三方库文件,jython的jar包里可能不含有这个,所以这时需要你找到你已有三方库文件的ex ...

  7. NG-ZORRO 使用相关

    Upload上传 import { Component, Input, Output, EventEmitter, Inject } from '@angular/core'; import { Nz ...

  8. 用 FFLIB 实现 Apex 企业设计模式

    Apex 企业设计模式将应用分为服务层.模型层.选择逻辑层.工作单元几个部分.FFLIB 是一个开源的 Apex 框架,可以帮助开发者快速建立相关的功能. FFLIB 的安装 FFLIB 可以直接部署 ...

  9. ST表基础模板

    ST表是用来求RMQ问题(求区间最大或最小值问题)的实用数据结构,支持\(O(nlog_n)\)建立,\(O(1)\)查询,是比较高效的结构 其原理实质上是DP(我最讨厌的东西) 题面:屠龙宝刀... ...

  10. JAVA基础系列:Arrays.sort()

    JDK 1.8  java.util.Arrays.class(rt.jar) 1. Collections.sort方法底层就是调用的Arrays.sort方法. 2. Java Arrays中提供 ...