アプリケーション MVC3 アプリケーションがあります。データベースへの書き込みを避けるために、特定のフォームが送信されたときなど、さまざまなことをログに記録したいのですが、詳細を xml ファイルに記録したいと考えています。
問題は、どのフォルダーを使用する必要があるかです。私が見た例のいくつかは、App_Data フォルダーを示唆しています。最も問題が少ない標準または推奨事項は何ですか?
だから私はこれを使用します:
// Create a new XmlSerializer instance with the type of the test class
var serializerObj = new XmlSerializer(typeof(CourseApplicationVM));
// Create a new file stream to write the serialized object to a file
var filename = string.Format("{0}-{1}-{2}{3}", "CourseApp",
viewModel.Course.Code + viewModel.Applicant.Name, DateTime.Now.Ticks, ".xml");
var filepath = Path.Combine(Server.MapPath("~/App_Data/Log"), filename);
TextWriter writeFileStream = new StreamWriter(filepath);
serializerObj.Serialize(writeFileStream, viewModel);
// Cleanup
writeFileStream.Close();
ローカルでは正常に機能しますが、サーバーに公開すると機能しません。フォルダー構造を見ると、公開時に App_Data フォルダーさえないため、驚くことではありません。これにより、次のエラーが発生します。
Could not find a part of the path 'C:\inetpub\wwwroot\MyApplication\App_Data\Log\CourseApp-0385JoeBloggs-634734549879496695.xml'.
Exception Details: System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\inetpub\wwwroot\MyApplication\App_Data\Log\CourseApp-0385JoeBloggs-634734549879496695.xml'.
そのフォルダを持っていないのはなぜですか (公開されるべきではありません)? そして、そのようなものを保存するための通常の場所は何ですか?
ありがとう、デビッド