0

データベースとしてASP.Netwithを使用して Web アプリケーションを開発しました。Microsoft Accessこれで、OleDB 接続を使用してデータベースに接続しました。問題は、接続文字列でデータベース ソースを指定するときSource="C:/WebApp/DB/data.mdb"です。接続は、パスが無効であり、そのようなファイルがないことを示すエラーをスローします。

使ってみた

Server.MapPath("~/DB/data.mdb") 

パスを「C:/WebApp/DB/data.mdb」として指定しますが、同じエラーがスローされます

Colud not locate file 'C:/WebApp/DB/data.mdb'

Plesk を使用してサーバーに公開すると、loalhost で正常に動作する場合でも、「C:/inetpub/xyx.com/httpdocs/...」が見つからないという同じエラーが表示されますが、何が問題なのですか?

4

3 に答える 3

1

wndowsパスを使用してみてください(スラッシュではなくバックスラッシュ)。

アクセスデータベースをWebアプリケーションと一緒に出荷する場合は、App_Dataフォルダーに配置することも検討できます。詳細については、こちらをお読みください。

完全に機能する例はここにあります

現在の例では、DBがWebルートの下のフォルダーである場合、ファイル名を知っていれば、だれでもデータベースをダウンロードできる可能性があることに注意してください。デフォルトでは、App_Dataに保存されているアイテムはクライアントに提供されません。

また、便利なことに、アイテムをApp_Dataに保存すると、接続文字列は次のようになります。

"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\data.mdb;Persist Security Info=False;" 

(およびユーザー/パスワードの詳細)。ASP.Netは|DataDirectory|を解決します 実行時のパス。

于 2011-12-13T12:32:41.237 に答える
1

Windowsパスで試しましたか?(バックスラッシュに注意)

C:\WebApp\DB\data.mdb
于 2011-12-13T12:28:32.103 に答える
0

いくつか問題がある可能性があります。以下の項目を確認してください。

  • DBフォルダがアプリケーションのルート レベルに存在することを確認します
  • データベース ファイルdata.mdbが uderDBフォルダに存在することを確認します

上記のオプションが欠落している場合は、適切なアクションを実行してください。

于 2011-12-13T12:34:03.357 に答える