"Permission denied"
ファイルに接続すると例外が発生します.sdf
。
この接続文字列を使用しています。
connection string="Data Source=|DataDirectory|\DB.sdf;Password='something';Mode = Read Only;Temp Path= Environment.GetFolderPath(Environment.SpecialFolder.Templates);Persist Security Info=True"" providerName="System.Data.EntityClient" />
これは Win 7 では正常に動作しますが、Win XP でアプリを実行すると戻ります
アクセス拒否
例外
一時ファイルに別のアドレスを試しましたが、それでも失敗しました。このオプションはすべて真です
- データベース ファイルへのパスは、xp マシン上に存在します。
- 指定されたディレクトリに一時ファイルを作成する権限があります
- 正しいパスワードを提供しています。
この問題は、データベース接続文字列が読み取り専用に設定されている場合に発生します。解決策を見つけましたが、使用できません:
解決策 1:
これがこれに関するスクープです。SDF ファイルを XP から Vista に移動すると、NLS バージョンが変更されたため、ファイルを読み取り/書き込みモードで開いて、インデックスが存在する場合はそれを書き換えようとします。これは、XP から Vista への移行時に最初に開いたときにのみ発生します。したがって、簡単な回避策は、ファイルを一時的に読み取り/書き込みモードに変更して、Vista で開き、読み取り専用に戻すことです。
アプリケーションが DVD から実行されるため、このソリューションを使用できません。
解決策 2:
XP/Server 2003 用、Vista/Server 2008/Win7 用、Win 8 用の 3 つの sdf ファイルがあります。
アプリケーション DVD にこれを行うための空き容量がないため、これもひどいものです。
誰でもこの問題を解決する良い考えを持っています。