LINQ to SQL クラスを利用するいくつかの C# プログラムがあります。exe ファイルをネットワーク ドライブに置いてそこから実行すると、「<strong>エラー 26」が発生しますが、これは Win7 から実行した場合のみです。
一歩一歩
新しい C# プロジェクトを作成します (XP マシンで VS 2010 Premium を使用しています)。新しい「LINQ to SQL クラス」を追加します。(サーバー エクスプローラーから) テーブルをデータ コンテキストにドラッグ アンド ドロップします。私が使用しているデータベースは、すべてリモート サーバー上の MSSQL です。
質問: 「接続文字列には、クリア テキストのパスワードを持つ資格情報が含まれており、統合セキュリティを使用していません…」で、[ はい] を選択します。
データ コンテキストを利用して、プログラムで LINQ クエリを作成します。プログラムが動作することを確認してください。
exeを(マップされた)ネットワークドライブに置きます
exeを実行します(NWの場所から)
接続文字列(システムによって作成されたもの) は次のようになります (VS プロジェクトで確認できる場所から; [プロパティ] -> [設定])。
Data Source=SERVERNAME\INSTANCE;Initial Catalog=INITIAL_CATALOG;Persist Security Info=True;User ID=USER_ID;Password=PASSWORD
ノート
- [ XPマシンの場合]ローカルでexeを起動(cドライブ)= OK
- 【XPマシンの場合】NWドライブからexeを起動=OK
- [ Win7 マシンの場合] ローカルで exe を起動 (c ドライブ) = OK
- [ Win7 マシンの場合 ] NW ドライブから exe を起動 = NOT OK (エラー 26…)
エラー メッセージ: SQL Server への接続の確立中に、ネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできませんでした。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。(プロバイダー: SQL ネットワーク インターフェイス、エラー: 26 - 指定されたサーバー/インスタンスの検索中にエラーが発生しました)