MVC3应用程序:用于在服务器上保存文件的文件夹

本文关键字:保存文件 文件夹 服务器 应用程序 用于 MVC3 | 更新日期: 2023-09-27 18:35:07

我有一个应用程序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'.

为什么它没有那个文件夹(不应该发布吗(?保存这些东西的正常位置是什么?

谢谢,David

MVC3应用程序:用于在服务器上保存文件的文件夹

右键单击文件夹并在上下文菜单中选择"包含到项目/解决方案">

请确保相应地设置了对文件夹的权限。