2

アプリケーション 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'.

そのフォルダを持っていないのはなぜですか (公開されるべきではありません)? そして、そのようなものを保存するための通常の場所は何ですか?

ありがとう、デビッド

4

1 に答える 1

1

フォルダーを右クリックし、コンテキスト メニューで [プロジェクト/ソリューションに含める] を選択します。

フォルダに対する権限が適切に設定されていることを確認してください。

于 2012-05-24T11:53:50.707 に答える