Frage

Ich habe eine ASP.NET Web Forms -App, die ich auf einem WIN7 -lokalen Computer auf .NET 4.0 erstelle und ausführe. (Alles ist in der lokalen Box in Ordnung.) Meine App läuft mit EF4.1 gegen einen Oracle -DB, daher verwende ich den Oracle EF -Datenanbieter, der sich noch in Beta befindet.

Im Moment kann ich die App erfolgreich auf meinem Win2008 -Serverzielmaschine über die Web -Bereitstellung von meinem lokalen VS2010 bereitstellen, aber wenn ich die App auf dem Ziel ausführe, erhalte ich den Klassiker Unable to find the requested .Net Framework Data Provider Error.

Hier ist meins (erfolglos) Setup, ab sofort:

  • 32-Bit-Anwendungen sind aktiviert im App -Pool (.NET 4.0) im Win2008 Server -Ziel.

  • Lokal kopieren ist eingestellt auf Stimmt für die Oracle.DataAccess DLL in meiner lokalen VS2010 -Lösung.

  • Beide des Plattform und Plattformziel Einstellungen sind auf Jede CPU in meiner lokalen Build -Konfiguration. (Ich habe hier ohne Erfolg verschiedene Einstellungen ausprobiert.)

  • Das Gewinn2008 -Serverziel tut dies nicht einen haben Oracle.DataAccess DLL im GAC. (Ich dachte, dass das Einstellen von Lokal auf der Oracle -DLL bedeuten würde, dass ich den GAC nicht brauchte.)

BEARBEITEN: Ich habe versucht, die GAC zu geben Oracle.DataAccess DLL, aber ich bekomme den gleichen Fehler, der besprochen wird hier. (Ich muss dies noch untersuchen.) Außerdem gibt es bereits einen anderen Oracle -Client in meinem Zielbox, und die Installation des Oracle -Clients, der mit dem Oracle EF -Datenanbieter geliefert wird, scheint ihn zu beeinträchtigen. Dies kann nicht passieren.

Frage 1: Welche Kombination aus Build -Konfigurationseinstellungen (im lokalen Feld) und IIS -Einstellungen (auf dem Ziel) muss ich auswählen, um meine App auf dem Server 2008 ausführen zu können?

Frage 2: Wie kann ich dies zum Laufen bringen, ohne einen anderen Oracle -Client auf meinem Zielserver zu installieren?

Nochmals vielen Dank für die Hilfe.

Update: Alles funktioniert. In meiner Antwort finden Sie einen Link zur vollständigen Lösung sowie Links zu hilfreichen Informationen.

War es hilfreich?

Lösung 2

Die Lösung von GTG liefert zumindest einen Teil der Antwort auf meine Frage 1, sodass ich seine Lösung verbessern kann. Für alle anderen, die an meiner Frage 2 interessiert sind (wie man eine unauffällige ODAC -Installation ausführt), kann eine Antwort gefunden werden hier. (Suchen Sie nach Anthonyvos Antwort, da sie alle notwendigen Informationen enthält.)

Ich sollte erwähnen, dass ich noch nicht in der Lage war, die unauffällige Lösung für mich zu arbeiten, aber viele haben es und es ist die Lösung, die ich implementieren muss.

AKTUALISIEREN: Fall abgeschlossen. Mir fehlte eine Oracle DLL. Mein vollständiges Setup wird angezeigt hier.

Andere Tipps

Da Ihr Server nicht über Oracle.dataAccess im GAC verfügt, zeigt dies an, dass Sie den Oracle -Client auf diesem Computer nicht installiert haben und versuchen, ihn durch die Bereitstellung von Oracle.dataaccess.dll als Teil Ihrer App zu sorgen.

Ich bin mir nicht ganz sicher, was auf dem Server installiert werden muss. Normalerweise führe ich das Oracle -Setup auf dem Server aus, um sicherzustellen, dass alle erforderlichen Oracle -Dateien und Einstellungen installiert werden. Wenn Sie dies tun, müssen Sie Oracle.DataAccess.dll zusammen mit Ihrer App nicht bereitstellen. Es befindet sich bereits im GAC des Servers.

Eine Sache, die ich weiß, ist eine Konfigurationseinstellung, die dem System mitteilt, wie man eine neue Instanz des Anbieters erstellt. Sie können versuchen, diese Einstellung zu Ihrem Web.config hinzuzufügen und zu versuchen, ob dies ausreicht, aber es gibt möglicherweise viele abhängige DLLs und Einstellungen, die der Oracle -Anbieter benötigt.

Die Einstellung ist (Dies gilt für eine andere Version von ODP.NET, Sie finden die richtigen Einstellungen in machine.config auf Ihrem eigenen Computer):

<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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top