64位Win7下Asp.net项目连接Oracle时报ORA-6413:连线未打开异常
当时小弟碰到这个问题的时候,也找了挺久的回答,但是回答都是模棱两可的说是因为()的问题,但是没有给出具体的解决方案,这里小弟就用一个比较笨的方法来解决这个问题。
第一种:就是使用本地IISWeb服务器,如下图所示:
,
但是,不知道是我的VS原因还是本身VS就有这个问题。我设置了这个后,确实连接数据库的时候没有出现问题也能正确查找出数据了,但是当我想要进行F5调试的时候,出现了"无法再Web服务器上启动调试",如下图所示:
并且使用"附加到进程"的调试方法也无法实现。这样虽然能够访问数据库了,但是不能调试这总不是办法,所以我选择了第二种方法。
第二种:就如众多大神所说,是因为路径中存在()的问题,但是我的系统在vs安装目录,oracle客户端目录,项目目录等地方都没有()。终于,在一位大神的文章中找到了答案:是因为VS启动调试模式的时候,就会去调用 C:\Program Files (x86)\Common Files\microsoft shared\DevServer\10.0这个地址,而因为是64为系统,所以出现了"(x86)"这个括号,问题原因找到了。那么下面来说下解决方法:
1. VS在进行调试的时候,调用的是WebDev.WebServer.exe这个执行程序(如果电脑中有.net framework 4.0),那个这个可执行文件名称就是WebDev.WebServer40.exe
2. 进入WebDev.WebServer40.exe地址,就是上面写出来的“C:\Program Files (x86)\Common Files\microsoft shared\DevServer\10.0”,这时我们就需要改变这个地址,复制10.0文件夹下的内容,复制到没有括号的地方,如 D:\1下面
3. 这时,我们既要实现能够访问Oracle数据库,又要能够进行调试。那么我们就要自己创建Web服务器,则么创建呢?就是通过WebDev.WebServer.exe来创建调试程序服务器。
4. 创建方法:(1):进入cmd模式,(2):进入到我们复制10.0文件出来的地方,(3):执行如下语句WebDev.WebServer /port:端口号 /path:项目所在地址 /vpath:"/",回车运行(WebDev.WebServer就是调试exe文件,如果有40的话,就需要WebDev.WebServer40 ....),如我的语句是这样的:WebDev.WebServer40 /port:8899 /path:"E:\MyProject\GPSClient\ForecastStationManager_jQuery\ForecastStationManager" /vpath:"/"(文件地址最好定位到sln文件的目录,这样vpath只需设置/)
5. 这时是不是在任务栏中创建了VS调试程序,如下图所示:
,和以前直接按F5运行的效果一样呢.
6. 这时,我们就要设置我们的Web项目了,右击Web项目 -> 属性 -> Web选项卡 -> 选择“使用自定义Web服务器”,设置服务器Url:http://localhost:设置的端口号/,如下图所示:
7. OK,这样就大功告成了,按F5执行调试的时候,既没有出现:连接未打开的问题,也没有出现无法调试的问题。欧拉。
此种方法的缺陷:
(1): 这是一种笨方法,但是小弟也没有找出其他能够解决我问题的方案,就这么做了
(2): 每次在进行调试或者运行项目之前,都要打开自定义的Web服务器,比较麻烦,所以大家可以将启动自定义的Web服务器做成bat执行程序。
好了,博客就写到这里了,各位大神如果有什么更好的方法,请联系我啊。。。
852552861@qq.com,这是我邮箱,请大神们带我装逼带我飞