独自のログ モジュールを作成した ASP.NET アプリケーションがあります。
私の質問は、ログ ファイルを書き込む標準的な場所はどこですか? つまり、Web サイトは匿名ユーザー ID (IIS7 の IUSR など) として実行され、書き込み権限があることがわかっている場所が必要です。
乾杯、
独自のログ モジュールを作成した ASP.NET アプリケーションがあります。
私の質問は、ログ ファイルを書き込む標準的な場所はどこですか? つまり、Web サイトは匿名ユーザー ID (IIS7 の IUSR など) として実行され、書き込み権限があることがわかっている場所が必要です。
乾杯、
プロジェクトのルートにある App_Data フォルダー。Web リクエストには提供されません。そのため、他の人がそれを詮索することはできません。
ログファイルを別のディスクに置くことをお勧めしますが、Webサイトと同じディスクの読み取りと書き込みの両方を試みないように、パフォーマンスが少し向上するはずです。ログファイルを別のディスクに保存できない場合は、選択したフォルダを選択するだけです。
いずれの場合も、「ネットワークサービス」アカウントに目的のフォルダへの「変更」権限を付与する必要があります。
一方、データベースにアクセスできる場合は、そこに情報を記録します。ハードドライブにアクセスするよりもはるかに高速であり、一般に公開されることはありません。また、データから非常に簡単にレポートすることができます。
app_dataをプッシュするのが最善の方法です。プロジェクトを公開するときに、[公開する前に既存のファイルをすべて削除する]オプションにチェックマークを付けると、フォルダー内の現在のデータが失われることに注意してください。回避策は、app_dataフォルダーの削除をスキップすることです。
ロギングを行う別のオプションは、Log4netなどの既存のフレームワークを使用することです。
Windows イベント ログまたはデータベース内のテーブルに記録することもできます。人々はどのくらいの頻度でイベント ログを見ていますか? 定期的に調査されている場合、テーブルに書き込むと、順序を逆にして現在の期間の最後の X イベントのみを表示するのは簡単なので、レポートを簡単に返すことができます。Windows イベント ログPowerShellまたはLogParserを使用して Windows イベント ログをクエリすることもできます。
私はフォルダー (特に仮想ディレクトリのホーム フォルダーの外側) のアクセス許可を変更する立場になく、まだ App_Data フォルダーを持っていないので、それを使用するのを少しためらっています。
そのため、当面は CommonApplicationData フォルダーを使用します。
私はフォルダー (特に仮想ディレクトリのホーム フォルダーの外側) のアクセス許可を変更する立場になく、まだ App_Data フォルダーを持っていないので、それを使用するのを少しためらっています。
Web サイトを持っている場合、明らかにどこかにフォルダーがあります。(非 Web 向けの) サブフォルダーを追加できませんか? ログをグローバルな共有フォルダーにダンプするよりも、ログを配置するのに適した場所のようです。