2017-02-21 9 views
0

Ich kann nicht Npgsql Verbindungszeichenfolge zu arbeiten. Ich habe ein paar Möglichkeiten ausprobiert, zum BeispielNpgsql Ausnahme bei Verbindungszeichenfolge

NpgsqlConnection conn = new NpgsqlConnection("Server=192.168.1.220;User Id=pgsql;Password=pgsql;Database=pgsql;"); 

oder

var conn = new NpgsqlConnection("Host=192.168.1.220;Username=pgsql;Password=pgsql;Database=pgsql"); 

beide wirft mir Ausnahme:

The type initializer for 'Npgsql.NpgsqlConnectionStringBuilder' threw an exception.

Im Betriebssystem Windows XP 64-Bit mit VS 2010. Ich habe bereits versucht, Verbindung von diesem Computer zu meinem Pgsql-Server mit ODBC oder PgAdmin III - beide funktioniert ok.

Könnte dieses Problem mit meiner Npgsql-Installation zusammenhängen? Ich war nicht in der Lage es mit NuGet zu installieren, da ich folgende Fehlermeldung anzeigt:

PM> Install-Package Npgsql Installing 'Npgsql 3.2.1'. Successfully installed 'Npgsql 3.2.1'. Adding 'Npgsql 3.2.1' to Project. Uninstalling 'Npgsql 3.2.1'. Successfully uninstalled 'Npgsql 3.2.1'. Install failed. Rolling back... Install-Package : Could not install package 'Npgsql 3.2.1'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.0,Profile=Client', but the packag e does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author. At line:1 char:16 + Install-Package <<<< Npgsql + CategoryInfo : NotSpecified: (:) [Install-Package], InvalidOperationException + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand

Ich habe versucht, auch Zielframework auf 4,0 oder 3,5 zu wechseln, aber Ergebnis war genau das gleiche. Also installierte ich Npgsql einfach durch Extrahieren von DLL aus MSI-Installation, dann laden Sie es als Referenz.

Weiß jemand, wie Verbindungszeichenfolge funktioniert?

+0

Von Ihrer nuget-Installationsausnahme scheint es, als ob Sie versuchen, Npgsql in ein .NET Framework 4.0-Projekt zu installieren - dies wird nicht unterstützt. Die niedrigste unterstützte Version ist 4.5. –

+0

Wenn Sie immer noch die Ausnahme in einer .NET 4.5 (oder späteren) Anwendung erhalten, posten Sie bitte die vollständige Ausnahme, die Sie erhalten, schließen Sie den vollständigen Stack-Trace und alle inneren Ausnahmen ein. Es ist nicht möglich zu wissen, was gerade passiert. "Der Typinitialisierer hat eine Ausnahme ausgelöst". –

+0

Es scheint, dass Problem genau war, wie Sie beschrieben, aber ich brauche .NET 4.0, um es auf WinXP laufen zu lassen, so löste ich mein Problem, indem ich von Npgsql zu Devart grundlegende pgsql Bibliothek wechselte. Vielen Dank. – geosys

Antwort

0

Sie haben den Port vergessen. Vielleicht ist das der Grund. Die Standard-PostgreSQL-Server auf Port 5432.

NpgsqlConnection conn = new NpgsqlConnection("Server=192.168.1.220;Port=5432;User Id=pgsql;Password=pgsql;Database=pgsql;"); 
hören

Example Connection String

Vielleicht haben Sie keine Bibliothek Mono.Security.dll. Ist es in der älteren Version weniger als 3.0 notwendig oder ist die Systemfirewall aktiviert?

+0

Vielen Dank für die Antwort, aber es hilft nicht, ich habe den gleichen Fehler. Die Firewall ist deaktiviert und kann mithilfe von pgAdmin ||| keine Verbindung mit dem Server herstellen oder ODBC. – geosys

+0

Vielleicht haben Sie keine Bibliothek Mono.Security.dll. Es ist in der älteren Version weniger als 3.0 notwendig. – elcudro

+0

Der Port ist nicht obligatorisch, Npgsql verwendet standardmäßig Port 5432. –

Verwandte Themen