У меня есть приложение ASP.NET Web Forms, которое я создаю и использую для .NET 4.0 на локальном компьютере Win7. (В локальном ящике все в порядке.) В моем приложении EF4.1 работает с базой данных Oracle, поэтому я использую поставщика данных Oracle EF, который все еще находится в бета-версии.
Прямо сейчас я могу успешно развернуть приложение на моем целевом компьютере Win2008 Server с помощью веб-развертывания из моего локального VS2010, но когда я запускаю приложение на целевом компьютере, я получаю классическую ошибку Unable to find the requested .Net Framework Data Provider
.
Вот моя установка (неудачная) на данный момент:
32-разрядные приложения включены в пуле приложений (.NET 4.0) на целевом сервере Win2008.
Для параметра Копировать локально установлено значение true для
Oracle.DataAccess
DLL в моем локальном решении VS2010.Оба параметра Платформа и Целевая платформа установлены на Любой ЦП в моем локальная конфигурация сборки. (Я безуспешно пробовал здесь разные настройки.)
Целевой сервер Win2008 не имеет
Oracle.DataAccess
DLL в GAC. (Я думал, что установка Copy Local в Oracle DLL будет означать, что мне не нужен GAC.)
ИЗМЕНИТЬ: я попытался выполнить GAC Oracle.DataAccess
DLL, но получаю ту же ошибку, которая обсуждается здесь. (Мне все еще нужно исследовать это.) Кроме того, на моем целевом компьютере уже есть другой клиент Oracle, и установка клиента Oracle, который поставляется с поставщиком данных Oracle EF, похоже, мешает ему. Этого нельзя допустить.
Вопрос 1. Какую комбинацию настроек конфигурации сборки (в локальном поле) и настроек IIS (в целевой машине) мне нужно выбрать, чтобы иметь возможность запускать свое приложение на сервере 2008?
Вопрос 2: как я могу заставить это работать, не устанавливая еще один клиент Oracle на моем целевом сервере?
Спасибо еще раз за помощь.
Обновление: все работает. В моем ответе ниже есть ссылка на полное решение, а также ссылки на полезную информацию.