这两天被下面这两件怪事搞得晕头转向了:
1. 在 Asp.NET 中调用 Excel 组件时进程无法完全自动杀死
Excel.Application app = new Excel.Application();
......... // code.
用下列语句 正常情况下是可以自动杀死进程的。
app.Quit();
app = null;
GC.Collect();
奇怪的是,第一个创建的进程总是无法杀死。(不过过一段时间--可能20分钟左右,它还是会自动消失,不知是否 垃圾回收了?但前面已经强制调用过一次了啊? 而且在创建非第一个EXCEL进程后调用
GC.Collect() 确实可以回收掉。。。惟独第一个不行)
实在郁闷。
2. 关于 Oracle 的连接与 WEB.Config 中的 <identity impersonate="true" />
Oracle 我是用 OLEDB连接的。字符串如下:
"Provider=OraOLEDB.Oracle.1;Persist Security Info=True;Data Source="+dbName+";User ID="+uId+";Password="+pwd;
奇怪的是,这两天,总出现一些怪异问题,ORACLE时而连上,时而连不上,且错误提示还是乱码(密码错误的提示是英文正常显示。)
奇怪症状如下:
1. 将 impersonate 设置为 false, 连接正常,再设为 true 又出现错误,如此往复几次,结果一样。
2. 保持 impersonate="true" 在 identity 节点中增加 userName 和 password ,可以连接,
再将它删除掉还原原来格式,却也是可以连接的。
此时再将 impersonate 设置为 true 或 false , 也是都可以连接成功的。
结论: 无语。。。。