我已经使用Oracle提供的XCopy 11.2安装了用于64位机器的Oracle客户端(根据读者指示安装了所有东西)。
我正在使用Visual Studio 2010,该项目是ASP.NET网站的types。
当我尝试使用上面安装的Oracle连接来执行我的ASP.NET网站时,它在编译期间给我提供了web.config文件中的错误。
**
“无法加载文件或程序集”Oracle.DataAccess,版本= 4.112.2.0,文化=中立,PublicKeyToken = 89b483f429c47342“或其依赖项之一。系统找不到指定的文件”
**
如果我在IIS应用程序池中将“启用32位应用程序”的值更改为“True”,它就起作用了。
但我的要求是使它在64位ODP.NET连接器的64位机器上工作,所以我不想将启用32位应用程序的值更改为True。
所以,如果你能帮我find一个答案,将不胜感激。 请帮我解决上面的错误。
处理这个问题的最好方法是在本地使用Visual Studio的x86版本和使用IIS的服务器上的x64版本。 要做到这一点,你必须下载这两个版本 – 复制一个文件夹lib \ x86和另一个lib \ x64之后,你必须修改项目文件 – 视觉工作室支持条件引用。 将以下部分添加到您的项目文件中:
<PropertyGroup> <ReferencesPath Condition=" '$(Platform)' == 'x86' ">..\Lib\x86</ReferencesPath> <ReferencesPath Condition=" '$(Platform)' == 'x64' ">..\Lib\x64</ReferencesPath> </PropertyGroup>
在这个参考之后odp.net非常喜欢这样的:
<Reference ... processorArchitecture=$(Platform)"> <SpecificVersion>False</SpecificVersion> <HintPath>$(ReferencesPath)\Oracle.DataAccess.dll</HintPath> <Private>True</Private> </Reference>
这样,当你可以在本地构建x86和服务器x64时,总是会引用正确版本的Oracle.DataAccess.dll。
或者,如果您只想使用x64版本,则必须坚持使用IIS,即使您在本地工作,也可以尝试以x64模式(http://cassinidev.codeplex.com)运行开放源代码版本的Cassini。
对我来说,最好的办法就是参考上面描述的两个版本 – 对于我们团队中的每个人来说,这一直很好。
您必须安装64位Oracle数据访问组件(ODAC),因为Oracle客户端安装不会将Oracle.DataAccess.dll注册到程序集中。
如果您的oracle数据访问安装正常,在您的应用程序池设置中取消选中“启用32位应用程序”后,所有内容都可以正常工作。
如果您仍然有相同的错误,则可能是您的网站的bin文件夹中有一个32位的dll。 只要删除它,网站将使用从程序集的64位,它应该工作。