本帖最后由 hyblusea 于 2012-12-07 14:23:28 编辑

解决方案 »

  1.   


    意思是必须把“目标平台”设置为 X86 ?? 
    这样倒是跑起来了, 但是一但程序需要连接数据库时,这句话就会抛异常:
    _factory = DbProviderFactories.GetFactory(_providerName);  
    找不到请求的 .Net Framework Data Provider。可能没有安装。可能是因为安装的ODP是64位的。
      

  2.   

    Oracle.DataAccess 这就是个32为的dll,除非自己写个,否则,所有的一切,都要用32位模式运行,你试试好了,我之前碰到类似的问题,当然不是数据库问题,结果后来找了其他组件替代掉了。
      

  3.   

    我发现VS 启动的IIS EXPRESS是32位的。。我去~。。与这个有关系么?
      

  4.   


    我可以确定我安装的是64位的ODP.NET, 并且 Oracle.DataAccess.dll是64位的:
    C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC>corflags E:\app\hy\produc
    t\11.2.0\client_1\odp.net\bin\4\Oracle.DataAccess.dll
    Microsoft (R) .NET Framework CorFlags Conversion Tool.  Version  4.0.30319.17929Copyright (c) Microsoft Corporation.  All rights reserved.Version   : v4.0.30319
    CLR Header: 2.5
    PE        : PE32+
    CorFlags  : 0x9
    ILONLY    : 1
    32BITREQ  : 0
    32BITPREF : 0
    Signed    : 1PE: 32+ 可以确定他是64位的文件。
      

  5.   

    问题解决了, 就是因为VS 启动的是32位的 IIS EXPRESS, 并且好像暂时没找到让VS 启动64位 IIS EXPRESS的办法。。所以目前我的解决方式是:
    1.安装 IIS
    2.在项目属性-> Web 选项中,服务器选择 选择使用IIS WEB 服务器。。因为IIS是64位散分。。
      

  6.   


    不是, 您这样的设置是因为ORACLE CLIENT 或者ODP.NET 是32位, IIS需要加载32位库文件, 这一项需要选择为True, 而我遇到的是32位的 IIS EXPRESS没办法调用64位ODP.NET
      

  7.   

    所以最后我放弃了使用 IIS EXPRESS, 而直接使用了IIS。
      

  8.   

    真正运行环境估计不适合用EXPRESS版本吧,顺便接分来的
      

  9.   

    检查你的vs上显示的Debug下拉选单里的“配置管理器”。