8

我在 Windows azure 上部署了 mvc-3 应用程序。在我的应用程序中,我正在上传文件并将其保存在App_Data/DownloadedTemplates文件夹中。

  var path = Server.MapPath("~App_Data/DownloadedTemplates");

我的应用程序目前正在登台环境中运行。当我上传文件时,它在浏览器中显示一个异常:

找不到路径“F:\sitesroot\0\App_Data\DownloadedTemplates\B.htm_2c77cdfd-c597-4234-bd1e-29ca0a9b8d0e.htm”的一部分。

我正在使用Server.MapPath在服务器上定位 App_Data 的路径,现在为什么会出现此异常?谁能告诉我这个问题?

4

1 回答 1

8

您不应该在 Windows Azure 应用程序中执行此操作。在 Windows Azure 中,您应该使用LocalResources(专用磁盘上的保留空间)将临时文件保存在磁盘上,这是您应该存储数据的唯一地方。

这是一个如何访问此类 LocalResource 的示例(可以在 VS 项目中配置名称和大小):

LocalResource localResource = RoleEnvironment.GetLocalResource("DownloadedTemplates");

不要忘记 LocalResources 中的数据可能会消失(例如当机器崩溃时)。如果你真的想保留你的数据,你应该使用 Windows Azure Blob Storage。

于 2012-07-27T12:47:49.880 回答