-
错误描述
- 普通Web项目,Web项目在32位系统上跑的好好的,一点问题没有。
- 使用VS内置的开发服务器调试,页面能正常启动,但一连接数据库就报“ORA-06413: 连接未打开”错误。
- 使用IIS Express或IIS服务器,启动时报错:HTTP 错误 500.21 - Internal Server Error,处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”。
- 在上述问题解决后,又报一个错误:未能加载文件或程序集"xxx.dll"或它的某一个依赖项。试图加载格式不正确的程序。
-
解决方案
- "ORA-06413: 连接未打开"错误,是因为连接数据库的程序所在的路径是不允许有特殊字符的。VS在64位版本下安装时,默认安装在Program Files (x86) 下,就"()"特殊字符引发的错误。
- 修改VS的安装目录,创建WinForm项目,连接数据库,测试通过。
- 然而当创建Web项目时,连接数据库,仍然提示“ORA-06413: 连接未打开”。原来是使用VS内置Web服务器进行调试的原因,因为内置服务器的程序被安装在了C:/Program Files (x86)/Common Files/ 下面,所以问题无法避免。目前暂时无法修改内置Web服务器的安装路径。
- 唯一的解决方法就是使用IIS服务器来调试程序。
- 正常情况下到这里问题应该已经解决了,但是当我改成IIS服务器调试的时候又报了一个错误:HTTP 错误 500.21 - Internal Server Error,处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”。
- 问了下度娘(虽然度娘时常不给力,但谷哥现被河蟹中...),原因可能是:在安装Framework v4.0之后,再启用IIS,导致Framework没有完全安装。解决方法:开始->所有程序->附件->鼠标右键点击“命令提示符”->以管理员身份运行->%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
- 这下问题该解决了吧,but一按F5又报了一个新的错误:未能加载文件或程序集"xxx.dll"或它的某一个依赖项。试图加载格式不正确的程序。
- 再次请度娘出山,了解到原因可能是项目中引用了某些x86的动态链接库或是将目标平台设置为x86了。解决方法:IIS管理器->应用程序池->DefaultAppPool(根据实际情况选择)->高级设置->启动32位应用程序->True。
- 通过以上折腾,终于KO了!
时间: 2024-10-12 12:33:56