Visual Studioで新しいASP.NETアプリケーションを作成すると、いくつかのファイルとフォルダーが自動的に作成されます。これらのフォルダーの1つはApp_Data
と呼ばれます。
また、メニューオプションBuild->Publish
を選択してWebサイトを公開するときは、チェックボックスInclude files from the App_Data folder
を使用できます。
このファイルに置かれたファイルとそのサブフォルダーにWebからアクセスできないと思いますか?たとえば、アプリケーションコードでのみ使用する予定のフォルダーリソースを配置しても安全ですか?
App_Data
フォルダーの実際の使用目的は何ですか?
編集:
すべての答えをありがとう。これまでに受け取った回答から、主に次の2つの点に興味があります。
誰かが「Webで表示できない」ことを保証する方法を指定できるでしょうか?標準の展開を実行するときにその事実に頼ることができますか、それともサーバー上のいくつかのIIS設定も確認する必要がありますか。
アプリケーションからのみアクセスできるようにするPDFファイルのセットがある状況。 App_Dataフォルダーを使用するのが適切な場所でしょうか、または別のフォルダーを作成し、IISを手動で設定して、Webからアクセスできないようにする必要がありますか?
App_Dataは、本質的にファイルベースのデータストアのストレージポイントです(たとえば、SQLサーバーデータベースストアとは対照的です)。いくつかの単純なサイトは、たとえばXMLとして保存されているコンテンツにそれを利用します。これは通常、DBのホスティング料金が高い場合です。
iISでマシンを強調表示し、[リクエストフィルタリング]をダブルクリックして、[非表示セグメント]タブを開きます。 「App_Data」は制限されたフォルダーとしてリストされます。はい、私はこのスレッドが本当に古いことを知っていますが、これはまだ適用可能です。
App_dataの使用目的は、Webプロセスのアプリケーションデータを保存することです。 Webで表示されるべきではなく、Webアプリがデータを保存したり、そこからデータを読み取ったりする場所です。
これは、SQL Server Express、Access、SQLiteなどの組み込みデータベースを配置する場所です。
App_Dataフォルダーは、asp.netワーカープロセスにもファイルシステム権限がありますが、Webサーバーを通じて公開されていないフォルダーです。
たとえば、お問い合わせフォームのローカルCSVを更新するために使用します。電子メールの優先方法が失敗した場合、またはデータソースのクエリが必要な場合、App_Dataファイルはそこにあります。
それは理想的ではありませんが、それは良いフォールバックです。
MSDNのASP.NET Webプロジェクトのフォルダー構造に関するドキュメントから:
Webプロジェクトのファイルは、アプリケーションに便利な任意のフォルダー構造に保存できます。アプリケーションでの作業を容易にするために、ASP.NETは特定の種類のコンテンツに使用できる特定のファイル名とフォルダー名を予約しています。
App_Dataには、.mdfデータベースファイル、XMLファイル、その他のデータストアファイルなどのアプリケーションデータファイルが含まれます。 ASP.NETは、App_Dataフォルダーを使用して、メンバーシップおよびロール情報を維持するためのデータベースなど、アプリケーションのローカルデータベースを格納します。詳細については、 メンバーシップの概要 および ロール管理の理解 を参照してください。
アップロードされたcsvファイルの一時的なストレージエリアとして使用します。アップロードされると、ajaxメソッドはファイルを処理して削除します。
主な目的は、アプリケーションのデータベースファイルを保持することです。
そして、これはデフォルトではウェブからアクセスできません。
App_Dataの使用目的は、データベース関連のファイルを保存することです。通常、SQL Server Express .mdfファイル。