Служба данных WCF, модель данных объекта EDMX, база данных Oracle 11, не развертывается в IIS - PullRequest
0 голосов
/ 13 сентября 2011

Я реализую службу данных WCF, которая реализует следующий метод: http://debugmode.net/2010/06/13/introduction-to-wcf-data-service-and-odata/

Я установил следующий бета компонент ODAC: http://www.oracle.com/technetwork/topics/dotnet/downloads/oracleefbeta-302521.html

Когда я запускаю решение в Visual Studio 2010, оно отлично возвращает данные, когда я развертываю приложение в IIS 7, оно выдает следующее исключение:

Базовый поставщик не удалось открыть.

Я проверил строки подключения в обеих, они установлены одинаково, единственное, о чем я могу думать, я считаю, что это не проблема, это то, что клиентские компоненты Oracle устанавливают TNSNAMES.ora и sqlnet.ora в следующее местоположение:

Есть 2 для имени пользователя

  • C:\app\<username>\product\11.2.0\client_1\Network\Admin
  • C:\app\<username>\product\11.2.0\client_2\Network\Admin

и есть один для oraclebase -

  • C:\app\oraclebase\product\11.2.0\client_1\Network\Admin

Я скопировал рабочие файлы во все нужные места, на самом деле, я могу прекрасно подключиться через SQL Plus

Моя интуиция говорит мне, что пул приложений / удостоверение, под которым работает IIS, не загружает правильные значения конфигурации, но я изменил учетную запись пула приложений для запуска под -my- account.

Вот строки подключения, которые используются из приложения ASP.NET (на случай, если это поможет)

metadata=res://*/ENTITY_NAME.csdl|res://*/ENTITY_NAME.ssdl|res://*/ENTITY_NAME.msl;provider=Oracle.DataAccess.Client;provider connection string="DATA SOURCE=DATABASENAME;PASSWORD=PASSWORD;PERSIST SECURITY INFO=True;USER ID=USERNAME"

Кстати, у меня есть другая служба данных WCF на том же сервере, она указывает на экземпляр SQL и просто извлекает данные, была проблема с удостоверением в этом пуле приложений, но она была решена.

Кто-нибудь знает, что это может быть?

Примечание. Я также выполняю функции connection.open () и connection.close () для объектов в коде.

1 Ответ

1 голос
/ 15 сентября 2011

Я решил эту проблему. Проблема заключалась в том, что мой пул приложений не был настроен на запуск 32-разрядных приложений. Компонент ODAC является 32-разрядным.

В некотором роде этот пост также был полезен, чтобы помочь понять различные движущиеся части в настройке Oracle для подключения.

...