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 回答