Я пытаюсь развернуть на 64-битном сервере Windows 2008 R2 под управлением AppFabric службу WCF 4.0, которая подключается к базе данных Oracle 10gR2.На моих Windows 7 64-битных, внутри Visual Studio 2010, все идет хорошо.Я впервые начал использовать Oracle ODP.NET и, при развертывании, я начал получать:
System.IO.FileNotFoundException: Could not load file or assembly 'Oracle.DataAccess, Version=2.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The system cannot find the file specified.
File name: 'Oracle.DataAccess, Version=2.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342'
Я пробовал так много вещей, но ничего не получалось, и так как я отчаянно желал, чтобы это заработалои отправился в OracleClient, несмотря на то, что он помечен как устаревший, просто для того, чтобы это заработало и сэкономило мне время.Я удалил все, что установил, но установил только win64_11gR2_client.zip с опцией времени выполнения.Однако, чем я начал получать:
System.DllNotFoundException: Unable to load DLL 'oramts.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
Итак, я переустановил win64_11gR2_client.zip, добавив компонент Oracle Services for Microsoft Transaction Server.Но затем, всякий раз, когда я звонил своей службе WCF, IIS зависал с ошибкой ниже:
Faulting application name: w3wp.exe, version: 7.5.7601.17514, time stamp: 0x4ce7afa2
Faulting module name: ntdll.dll, version: 6.1.7601.17514, time stamp: 0x4ce7c8f9
Exception code: 0xc0000374
Fault offset: 0x00000000000c40f2
Faulting process id: 0xb28
Faulting application start time: 0x01cc0b141a857fac
Faulting application path: c:\windows\system32\inetsrv\w3wp.exe
Faulting module path: C:\Windows\SYSTEM32\ntdll.dll
Report Id: 7630c4b0-7707-11e0-8419-00155d010609
Если бы я попытался изменить AppPool для включения 32-битного приложения, WSDL даже неполучить, и я получаю:
A process serving application pool 'MyAppPool' suffered a fatal communication error with the Windows Process Activation Service. The process id was '2856'. The data field contains the error number.
Я потерян, и я не знаю, что делать.Как может быть так сложно выполнить «простую» и типичную настройку Oracle?Какую проблему я бы попытался решить?Кто-нибудь знает о блоге, который показал бы, как правильно настроить это?Я пытался искать, но ничего не смог найти, и я уверен, что я не единственный с этой проблемойНу, любая помощь будет очень признательна.Так много
РЕДАКТИРОВАТЬ
Я снова пытаюсь использовать ODP.NET, так как из-за всех проблем возникла попытка использовать OracleClient от Microsoft.Я установил 64-разрядную версию OPD.NET2 на своей машине для разработки, в Справочнике проекта, удалил 32-разрядную ссылку и вручную ссылаюсь на 64-разрядную версию Oracle.DataAccess.dll.Всякий раз, когда я делаю это, я не могу использовать решение на своей Dev Machine, так как я получаю сообщение об ошибке:
Could not load file or assembly 'Oracle.DataAccess' or one of its dependencies. An attempt was made to load a program with an incorrect format.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.BadImageFormatException: Could not load file or assembly 'Oracle.DataAccess' or one of its dependencies. An attempt was made to load a program with an incorrect format
Это, вероятно, связано с тем, что он пытается загрузить 32-разрядный ODACвместо 64-битного.Но после развертывания на моем 64-разрядном сервере я прекращаю получать исключение FileNotFoundException, но начинаю получать:
System.TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception. ---> Oracle.DataAccess.Client.OracleException: The provider is not compatible with the version of Oracle client
at Oracle.DataAccess.Client.OracleInit.Initialize()
at Oracle.DataAccess.Client.OracleConnection..cctor()
--- End of inner exception stack trace ---