2017-02-21 40 views
0

Npgsql接続文字列を使用できません。私はすでに試した接続文字列のNpgsql例外

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

イムVS 2010でのWindows XPの64ビット版を実行している:私は、両方のは、例外が私をスロー

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

または

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

例えば、いくつかの方法を試してみましたODBCまたはpgAdmin IIIを使用して、そのマシンからpgsqlサーバに接続する - 両方とも正常です。

私のNpgsqlのインストールに関連するこの問題がありますか? 私は次のエラー得たので、私は、NuGetでそれをインストールすることができませんでした:私は、4.0または3.5へのターゲットフレームワークを切り替えることも試してみた

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

を、しかし、結果はまったく同じでした。 私はMSIインストールから.dllを抽出するだけでNpgsqlをインストールし、参照としてロードします。

誰かが接続文字列を作成する方法を知っていますか?

+0

あなたのナゲットインストールの例外から、Npgsqlを.NET Framework 4.0プロジェクトにインストールしようとしているようですが、これはサポートされていません。サポートされる最低バージョンは4.5です。 –

+0

.NET 4.5(またはそれ以降)のアプリケーションで引き続き例外が発生した場合は、完全なスタックトレースと内部例外を含め、完全な例外を投稿してください。 「型初期化子が例外を投げた」だけで何が起こっているのか知ることはできません。 –

+0

問題は正しく解読されたようですが、WinXP上で.NET 4.0を実行する必要があるので、NpgsqlからDevartの基本的なpgsqlライブラリに切り替えることで問題を解決しました。ありがとうございました。 – geosys

答えて

0

ポートを忘れました。多分、これが原因です。ポート5432

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

Example Connection String

に耳を傾け、標準PostgreSQLサーバは、たぶん、あなたはライブラリMono.Security.dllを持っていません。古いバージョンでは3.0より少ないか、システムファイアウォールが有効になっている必要がありますか?

+0

返事ありがとうございますが、それは役に立たない、私は同じエラーがあります。ファイアウォールは無効になり、pgAdmin |||を使用してこのマシンからサーバーに接続できますまたはODBC。 – geosys

+0

あなたはMono.Security.dllライブラリを持っていないかもしれません。古いバージョンでは3.0より少なくする必要があります。 – elcudro

+0

ポートは必須ではなく、Npgsqlはデフォルトでポート5432を使用します。 –