2009-07-22 5 views
2

Verwenden von Visual Studio 2008 auf Vista 64 Bit, wenn ich eine Test-Website oder Web-Anwendung erstellen, die wie folgt aussieht ...Warum bekomme ich Oracle-Verbindungsfehler nur in einem VS 2008 Web App/Site-Projekt?

public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     OracleConnection connection; 
     connection = new OracleConnection("User Id=user;Password=userpass;Data Source=dataSource;"); 
     connection.Open(); 
    } 
} 

... und führen Sie es, erhalte ich die folgende Fehlermeldung.

ORA-12154: TNS:could not resolve the connect identifier specified 

Ich bin mir bewusst, dieses Problem in Bezug auf Pars ... http://duanesbrain.blogspot.com/2007/01/ora-12154-using-c-with-microsoft-visual.html

Visual Studio 2008 ist in Program Files (x86) installiert, aber ein anderer Entwickler hat das gleiche Setup und es funktioniert für ihn in Ordnung. Das Projekt selbst befindet sich nicht in einem Verzeichnis mit einem Namen, der Parens enthält.

Ich weiß, es ist nicht meine tnsnames.ora oder meine sqlnet.ora-Dateien. Ich habe meine Maschine genau so eingerichtet wie alle Entwickler, die an diesem Projekt viel länger als ich gearbeitet haben.

Ich bin auch 100% sicher, dass die Verbindungszeichenfolge, die ich verwende, korrekt ist.

Wenn ich eine Konsole-Anwendung mit dem gleichen genauen Code erstellen, verbindet es sich gut. Ich kann den Oracle-Server anpingen und direkt über die Eingabeaufforderung eine Verbindung herstellen.

Eine weitere seltsame Sache ist, dass, wenn ich eine Webanwendung oder Website mit dem gleichen Code mit VS 2005 (auch in den Programmdateien (x86) installiert) erstellt wird, funktioniert es auch.

Es scheint Web-Anwendungen und Websites 2008

EDIT VS nur eingeschränkt werden: Ich sollte hinzufügen, dass mein Orakel Ordner alle Berechtigungen zu jeder Zeit gegeben hat.

EDIT: Oracle Version 10.2.0

EDIT: Vielen Dank für die Einblicke, ich konnte nie an die Arbeit und die anderen Devs und ich beschlossen, es wäre schneller ein XP vm zu bauen an etwas arbeiten. In ein paar Stunden hatte ich einen aufgebaut und alles läuft gut.

+0

Haben Sie für Visual Studio 2008 eine Lösungsdatei von einem anderen Entwickler verwendet? Wird die ORACLE_HOME-Systemvariable während des Ausführungsprozesses jemals überschrieben? – bogertron

+0

Die Lösungsdatei stammt von einem anderen Entwickler, der aus svn gezogen wurde. Ich glaube nicht, dass die Systemvariable ORACLE_HOME während der Ausführung überschrieben wird. – Carter

Antwort

1

Ich habe das gleiche Problem und nach mehreren Stunden !!! .. festgestellt, dass die Version der Oracle-Installation wurde nicht aktualisiert. Ich habe 10.2.0.4 und Viola (auf 10.2.0.1 funktioniert es nicht!) Einige Oracle Bug.

+0

Aktualisierung funktionierte auch für mich (bis 10.2.0.3) – thorncp

0

Ich hatte Probleme mit Orakel zu Hause. Können Sie die Registrierung überprüfen und wenn nötig ändern, um sicherzustellen, dass ORACLE_HOME korrekt eingerichtet ist. der Registrierungspfad ist ORACLE HKLM \ SOFTWARE \ \

Ich habe einen Schlüssel KEY_OraOdac11h_home1 und der Wert für ORACLE_HOME ist der Dateipfad, wo ich installiert den Oracle-Client (C: \ Oracle \ product \ 11.1.0 \ client_1) benannt

Sie können auch versuchen, die Systemumgebungsvariable ORACLE_HOME mit dem Wert C: \ Oracle \ product \ 11.1.0 \ client_1 hinzuzufügen.

Ändern Sie den Dateipfad zu dem Ort, an dem Sie Oracle Client installiert haben.

+0

HKLM \ SOFTWARE \ ORACLE scheint auf meinem Computer nicht zu existieren. Ich kann nirgendwo einen Oracle-Registrierungspfad finden. Wie ich schon sagte, obwohl es mit Kommandozeilen-Projekten und Web-Apps im Vergleich zu 2005 funktioniert. Es lohnt sich auch zu erwähnen, dass ich auf Version 10.2.0 stehe. – Carter

0

Die angezeigte Fehlermeldung weist auf ein Problem in einer der folgenden Dateien hin: Ihre Datei tnsnames.ora, Ihre Datei sqlnet.ora oder Ihr Datenquellenwert. Sie sollten die anderen Entwicklerversionen dieser Dateien überprüfen.

Haben Sie versucht, mithilfe der EZCONNECT-Methode die Konnektivität zu überprüfen? (Siehe www.connectionstrings.com/oracle) Möglicherweise müssen Sie Ihre Datei sqlnet.ora ändern, um EZCONNECT zu aktivieren.

Data Source=username/[email protected]//instancename 
+0

Ja, ich habe versucht mit ezconnect aktiviert. Wenn das, was du gesagt hast, wahr wäre, würde ich nicht in der Lage sein, eine Verbindung mit VS 2005 Web Apps herzustellen. Das Problem tritt nur in einer VS 2008-Webanwendung auf. Meine tnsnames.ora und sqlnet.ora sind die gleichen wie die anderen Devs, die sich mit Oracle verbinden können. – Carter

+0

Ich sollte auch beachten, dass ich, wie oben erwähnt, auch die Konnektivität überprüft habe, indem ich den Server über eine Befehlszeile anpinge. – Carter

0

Ist es ein 64-Bit/32-Bit-Problem? Sie könnten versuchen, das Projekt auf 32bit zu setzen und dann IIS in den 32bit-Modus zu zwingen.

Wie sich ändern IIS: http://support.microsoft.com/kb/894435

1

dies in beiden Debug passieren Hat und Modi freigeben? Sie ruinieren die Website mit dem Webserver WebDev.WebServer.exe (Casini) oder mit IIS. Versuchen Sie, zum anderen zu wechseln. Tritt dies nur beim Debuggen oder bei der Ausführung auf?

Vielleicht läuft diese Website als ein anderer Benutzer/Prozess und dieses Konto hat nicht die Pfade für oralece konfiguriert?

0

Ich habe gemischte Ergebnisse und seltsame Probleme beim Versuch, sich über .NET mit Oracle zu verbinden, festgestellt.

Versuchen Sie, diese Verbindungszeichenfolge (nicht die tns verwenden Datei, sondern verwendet die gleichen Details im Inneren davon)

Data Source = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = HOST IP) (PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = SERVICENAME))); Benutzer-ID = USERID; Passwort = PASSWORD;

Dies wird Sie starten, um zu sehen, ob es ein Problem mit der Verbindung zu Oracle oder wenn Ihre TNS-Datei nicht ordnungsgemäß löst.

Sie sollten etwas in SOFTWARE \ ORACLE \ wie HOME, ALL_HOMES, HOME0 usw. haben, denn so identifizieren die Treiber Ihr Orakelhaus und registrieren die TNS-Dateien.

Ich würde auch Ihre Firewall auf der Entwicklungs-Box, auf der Sie VS laufen, überprüfen und überprüfen Sie Ihre DLL-Referenzen, um sicherzustellen, dass Sie die gleichen Oracle Dlls verwenden - auch verwenden Sie die MS Orakel DLLs oder die von Oracle ?