2016-05-24 10 views
0

Anfangs funktionierte mein Code auf der Konsolenanwendung, funktionierte aber nicht auf dem Fensterdienst. Ich habe eine Textdatei in Catch erstellt, um zu überprüfen, ob der Code eine Verbindung zu MySQL herstellt oder nicht, und habe festgestellt, dass dies das eigentliche Problem ist. Was könnte der Grund dafür sein?Meine SQL-ODBC-Verbindung funktioniert in der Konsolenanwendung, funktioniert aber nicht im Window-Dienst.

Ich habe versucht, System DSN sowie UserDSN zu erstellen, aber keiner von ihnen funktioniert. Meine Verbindungszeichenfolge ist:

conn.ConnectionString = "DSN=TrAudit_SQL;Uid=marium;Pwd=marium;"; 

     try 
     { 
      conn.Open(); 
     } 
     catch 
     { 

      return (-1); 
     } 

Antwort

0

ich Tage mit dem gleichen Problem verbracht haben. Der Problemkern scheint sehr einfach zu sein: Die Build-Option "Prefer 32-bit .." Ihres Projekts sollte der Version des verwendeten Treibers entsprechen. Wenn also die 32-Bit-Treiberversion auf einem 64-Bit-Betriebssystem verwendet wird, sollte die Option überprüft werden. Oder Sie können es direkt in der .csproj-Datei wie folgt einstellen:

<PropertyGroup ...> 
    <DebugSymbols>true</DebugSymbols> 
    ... 
    <Prefer32Bit>false</Prefer32Bit> 
</PropertyGroup>