【问题标题】:Could not find a part of the path on windows azure在 Windows azure 上找不到路径的一部分
【发布时间】:2012-07-27 12:36:54
【问题描述】:

我在 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的路径,现在为什么会出现这个异常?谁能告诉我这个问题?

【问题讨论】:

  • 服务器上是否存在 App-Data 和文件夹 DownloadedTemplates?它们不是自动创建的。
  • 是的,当我部署我的项目时,它就在我的项目中

标签: c# asp.net-mvc-3 azure


【解决方案1】:

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

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

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

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

【讨论】:

  • 哇!谢谢桑德里诺。如此简单,但我完全忽略了这一点。
猜你喜欢
  • 1970-01-01
  • 2013-01-13
  • 2017-05-03
  • 1970-01-01
  • 2021-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多