2011-12-02 17 views
0

私は、データベース接続のエンティティフレームワークを使用してC#で書かれた.NET Windowsフォームアプリケーションを扱っています。接続文字列はapp.configに書き込まれます。要点は、SQL Server Express 2008とSQL compact 4の2つの異なるデータベースを切り替えるためにアプリケーションを変更することです。アプリケーションがSQLサーバーに接続できない場合は、app.config接続文字列セクションを変更して、ローカルデータベース(SQLコンパクト4)に接続するための名前。問題は、一部のコンピュータでは、操作が例外を発生させているということです:パスがアプリケーションがインストールされているパスである、拒否されたパスへのアクセスです。どうすればこの問題を克服することができますか?実行時のapp.configアクセスの例外

答えて

1

ユーザーモードアプリケーションは、ユーザーのプロファイル以外の場所にディスクへの書き込みを試みてはいけません。つまり、c:\Program Filesのものは、それが管理プログラムでない場合(したがってWin7/Vistaでは高度を要求する場合を除き)、プログラムの制限を解除する必要があります。

管理者として実行しているユーザーがいるWindows XPシステムは正常に動作します。しかし、Vista/7システムでは例外が発生することがあります。 (実際のものではなくapp.configのユーザー固有のコピーにリダイレクトされるため)。

代わりに、app.configにさまざまな接続文字列を格納し、ユーザーがアプリケーション内で選択できるようにする必要があります。ユーザー設定を使用して、最後に使用された文字列を保存できます。

関連する問題