部署问题:Oracle + EF4 + Win Server 2008
-
25-10-2019 - |
题
我有一个ASP.NET Web表单应用程序,我正在win7本地计算机上构建和运行.NET 4.0。 (本地框上都可以。)我的应用程序正在针对Oracle DB运行EF4.1,因此我使用的是Oracle EF数据提供商,该提供商仍在Beta中。
现在,我可以使用本地VS2010部署Web将应用程序成功地部署到我的Win2008服务器目标计算机上,但是当我在目标上运行该应用程序时,我会得到经典 Unable to find the requested .Net Framework Data Provider
错误。
这是我的 (不成功) 设置,截至目前:
32位应用程序 已启用 在WIN2008服务器目标的App池(.NET 4.0)中。
复制本地 被设定为 真的 为了
Oracle.DataAccess
我本地VS2010解决方案中的DLL。两个都 的 平台 和 平台目标 设置设置为 任何CPU 在我本地的构建配置中。 (我在这里尝试了不同的设置而没有成功。)
WIN2008服务器目标确实 不是 有一个
Oracle.DataAccess
DLL在GAC中。 (我认为在Oracle DLL上设置本地副本将意味着我不需要GAC。)
编辑: :我试图加入 Oracle.DataAccess
dll,但我得到了与讨论的相同错误 这里. 。 (我仍然必须调查此问题。)此外,我的目标框上已经还有另一个Oracle客户端,并且安装Oracle EF数据提供商随附的Oracle客户端似乎会干扰它。这不能允许发生。
问题1: :构建配置设置(在本地框上)和IIS设置(在目标上)的哪种组合我需要选择以便能够在2008服务器上运行我的应用程序?
问题2: :如何在不安装目标服务器上安装另一个Oracle客户端的情况下工作?
再次感谢您的帮助。
更新:所有人都在工作. 。有关完整解决方案的链接以及有用信息的链接,请参见下面的答案。
其他提示
由于您的服务器在GAC中没有oracle.dataaccess,因此表明您尚未在该机器上安装Oracle客户端,并且试图通过部署oracle.dataaccess.dll作为应用程序的一部分来使其正常工作。
我不太确定服务器上需要安装什么。我通常只是在服务器上运行Oracle设置,以确保安装所有必要的Oracle文件和设置。如果这样做,则无需与应用程序一起部署oracle.dataaccess.dll,它将已经在服务器的GAC中。
我知道的一件事是一个配置设置,该配置设置告诉系统如何创建提供商的新实例。您可以尝试将该设置添加到您的web.config,并尝试如果足够的话,但是再次,您可能需要很多依赖的DLL和设置,您需要使用Oracle提供商工作。
设置为(这是针对ODP.NET的另一个版本,您将在您自己的计算机上找到正确的设置):
<system.data>
<DbProviderFactories>
<add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client"
description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.1.2, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data>