Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web services 使用ODP.NET 64位的.NET Web服务_Web Services_Odp.net - Fatal编程技术网

Web services 使用ODP.NET 64位的.NET Web服务

Web services 使用ODP.NET 64位的.NET Web服务,web-services,odp.net,Web Services,Odp.net,我在.net4.0中创建了一个web服务。它通过ODP.NET4连接到oracle数据库。仅供参考,我使用ODAC11221XCOPYx64并安装了odp4和asp4。该服务在开发环境中运行良好 但在将其发布到同一台机器上运行的IIS后,我得到以下异常: System.ServiceModel.FaultException`1 was unhandled Message=Could not load file or assembly 'Oracle.DataAccess, Version=2

我在.net4.0中创建了一个web服务。它通过ODP.NET4连接到oracle数据库。仅供参考,我使用ODAC11221XCOPYx64并安装了odp4和asp4。该服务在开发环境中运行良好

但在将其发布到同一台机器上运行的IIS后,我得到以下异常:

System.ServiceModel.FaultException`1 was unhandled Message=Could not load file or assembly 'Oracle.DataAccess, Version=2.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) Source=mscorlib StackTrace: Server stack trace: at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter) at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) Exception rethrown at [0] System.ServiceModel.FaultException`1未处理 Message=无法加载文件或程序集“Oracle.DataAccess,Version=2.112.2.0,Culture=neutral,PublicKeyToken=89b483f429c47342”或其依赖项之一。定位的程序集清单定义与程序集引用不匹配。(来自HRESULT的异常:0x8013100) Source=mscorlib 堆栈跟踪: 服务器堆栈跟踪: 在System.ServiceModel.Channels.ServiceChannel.ThrowiffaultUnderstanding处(消息回复、消息故障、字符串操作、消息版本、故障转换器故障转换器) 位于System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime操作,ProxyRpc&rpc) 在System.ServiceModel.Channels.ServiceChannel.Call(字符串操作、布尔单向、ProxyOperationRuntime操作、对象[]输入、对象[]输出、时间跨度超时) 位于System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage方法调用,ProxyOperationRuntime操作) 位于System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage消息) 在[0]处重试异常 我使用64位odp.net,我在Windows Server 2008 R2上运行64位,并在Visual Studio中切换到64位

谁能告诉我我错过了什么或做错了什么

我还试图将
ORACLE.dataaccess.dll
复制到bin文件夹


提前感谢

由于我无法重新创建该问题,因此这是一次冒险,但在IIS中运行时,您需要确保您正在使用的特定框架(此处为4.0)的信任级别可以访问适当的DLL和文件

您可以卸载/重新安装odp位,或者 直接在以下位置调用“oracle权限”软件: %ora\U home\product\11.2.0\client\u 1\odp.net\bin\4\OraProvCfg.exe

此外,请查看自述文件(特别是本部分): %ora\U home\product\11.2.0\client\u 1\odp.net\doc\readme.txt (以下是我认为您可能感兴趣的宣传语)

==============================
ORACLEPERMISSION相关注释
==============================
1.为高信任或中等信任的Web应用程序配置OraclePermission
对于在高或中等信任度下运行的Web应用程序,OraclePermission
需要在相应的“web_uuz.config”文件中进行配置,以便
应用程序不会遇到任何安全错误。这
可以通过OracProvCfg工具进行配置。OraProvCfg.exe将
在web_hightrust.config和
与指定的.NET framework版本关联的web_mediumtrust.config。
下面给出了一个使用OraProvCfg工具进行配置的示例
.NET 2.0 web应用程序中的OraclePermission:
OraProvCfg.exe/action:config/product:odp/component:oraclepermission
/框架版本:v4.0.30319
/提供者路径:
在运行上述命令时,将在
ASP.NET权限集下的“web_hightrust.config”和“web_mediumtrust.config”
OraProvCfg还可用于从这些配置文件中删除这些条目
当它们需要移除时。
OraProvCfg.exe/action:unconfig/product:odp/component:oraclepermission
/框架版本:v4.0.30319
/提供者路径:
2.为部分信任的Windows应用程序配置OraclePermission
对于在部分信任环境中运行的Windows应用程序
应在相应的权限下指定OraclePermission条目
在security.config文件中设置。(Security.config在中提供。)
%windir%\Microsoft.NET\Framework\{version}\CONFIG)。下面的例子
指定.NET 2.0所需的OraclePermission项
Windows应用程序
具体检查那些配置文件(“web\u hightrust.config”和“web\u mediumtrust.config”)搜索类似条目

<IPermission class="Oracle.DataAccess.Client.OraclePermission,
Oracle.DataAccess, Version=4.112.2.50, Culture=neutral,
PublicKeyToken=89b483f429c47342" version="1" Unrestricted="true" />

(此自述文件来自EF的beta 3,因此我希望版本号有所不同)

你也可以看看这个论坛(它似乎与这条思路相似)


hth

检查编译器机器中的ODAC目标平台(32/64位)是否与放置web服务的生产服务器相同

<IPermission class="Oracle.DataAccess.Client.OraclePermission,
Oracle.DataAccess, Version=4.112.2.50, Culture=neutral,
PublicKeyToken=89b483f429c47342" version="1" Unrestricted="true" />