异常截图
Google 中有一些相关的文章,大致围绕在几个点上:
- 认为问题出在OCI兼容性。 认为问题出在Oracle Home。 认为问题出在Microsoft Account 。
第三种方式停用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 版本。