2011-12-21 11 views
2

Webプロジェクトをローカルiisに公開しましたが、フレームワークは "db"ファイルを見つけることができません。デバッグには問題はありませんが、私は接続できますが、localhostでは接続できません。ここに私の接続文字列は次のとおりです。web.configのSqlite接続文字列

<connectionStrings> 
    <add name="PROD" connectionString="data source=app.db;" providerName="System.Data.SQLite"/> 
    </connectionStrings> 

私は問題かもしれないもの

direct_path " "〜/ app.db"" すべて "../app.db" を試してみましたか?


D:\ドライブまたはinetpubドライブ以外でデータベースを検出できます。私はそれが許可の問題であるかどうか分からなかった。どのように私はそれの正確な解決策を見つけることができますか?

答えて

2

私はSystem.AppDomain.CurrentDomain.BaseDirectoryで物理パスを取得してから、sqliteファイルのパスを探します。出来た!

0

これはおそらくアクセス許可の問題です。これはWebサイトがあなたの資格情報のもとで実行されており、あなたが完全に制御できるのでデバッグ中に機能します。デプロイされるとIIS_USRSの下で実行されていますが、これは非常に制限的で、ほとんどの場合、デフォルトでファイルへの書き込み権限を持っていません。

ディレクトリ/ファイルに対する読み取り/書き込みのアクセス許可をIIS_USRSアカウントに提供します。これは動作するはずです。

+0

私はすべての権限をファイル/フォルダに与えましたが、希望はありません。 – mehmetserif

+0

data source = | DataDirectory | app.dbは私の接続文字列です。プロジェクトを公開すると、App_Dataディレクトリはbinディレクトリにあります。 – mehmetserif