【问题标题】:Access to a specific file location (c:/folder/file) in an Azure website访问 Azure 网站中的特定文件位置 (c:/folder/file)
【发布时间】:2014-05-22 07:33:36
【问题描述】:

一家公司为我提供了一个包含许多文件的 .dll。 dll 使用这种路径“C:/folder/file.config”访问文件。 我正在使用专用服务器上的 IIS 8,但我想在 Windows Azure 上迁移项目。

我知道 Windows Azure 提供了虚拟机,但我不会仅仅为了这个需要而使用它。

在我的梦想中,我想使用一个链接到 Azure 存储的网站,并且位于该网站上的 dll 可以访问其“C:/folder/file.config”。

Windows Azure 是否有支持基本路径的存储? ("C:/folder/file.config") 不使用虚拟机如何解决这个问题?

【问题讨论】:

  • 你能改变那个c:/folder/file.config 路径吗?它是从某个配置文件加载的吗?
  • 我无法更改此路径,他们只是为我提供了 .dll 并且路径直接写在他们的代码中。不幸的是,我无权访问他们的代码。
  • 你已经用azure-web-roles标记了它,那么你不必一直到VM Role,你也可以使用WebRole。
  • 你能否给我更多的描述我如何通过 WebRoles 做到这一点?路径“C:/folder/file.config”是否使用 Web Roles 本地管理?
  • 首先将file.config 作为角色内容的一部分 (blogs.msdn.com/b/philliphoff/archive/2012/06/08/…) 然后使用启动任务 (msdn.microsoft.com/en-us/library/gg456327.aspx ‎) 或 WebRole.cs (blogs.msdn.com/b/jimoneil/archive/2010/07/23/…) 将文件复制到您想要的位置。

标签: c# azure azure-storage filepath azure-web-roles


【解决方案1】:

出于以下原因,您需要谨慎使用此 Azure 解决方案:

  1. Azure Web 角色仅对根网站文件夹和子文件夹具有读/写访问权限。不给任何其他人。
  2. 此外,即使您设法获得了预期文件夹的权限,请记住该实例可以随时回收。这意味着您需要重复创建文件夹结构并将文件放在那里、设置权限等启动任务。
  3. 最后,Web 实例通过各自的配置文件副本相互独立。因此,您需要处理任何同步问题。 (只是只读不会造成问题)
  4. 文件系统访问需要大量 csdef 配置以及提升的任务。

http://blog.codingoutloud.com/2011/06/12/azure-faq-can-i-write-to-the-file-system-on-windows-azure/

【讨论】:

  • 文件将被设置为只读
  • 是不是一种映射 c:/folder/file => /Root/folder/file ?
  • 实际上它比您在答案中描述的要简单得多。 1)从提升的启动任务中,您可以写入C:驱动器。这一点都不难。 2)根据定义,启动任务每次都在启动时运行。只需创建一个简单的脚本即可从部署包本身或从 Blob 存储复制 DLL。 4) 不确定您所说的 一堆 csdef 配置 是什么意思。在角色内部创建<Startup> 元素,然后添加<Task executionContext="elevated" commandLine="..." />
【解决方案2】:

在 Azure 网站中,您的网站位于此处:

d:\home\site\wwwroot

实际映射为:

C:\DWASFiles\Sites\[your website name]

您无法访问 Azure 网站中 C: 分区中该文件夹上方的任何父文件夹

【讨论】:

  • 云服务有同样的限制吗?
  • 请问您有这方面的任何文件吗?
  • 我没有这方面的文档。你可以自己测试 [your-website].scm.azurewebsites.net/DebugConsole。顺便说一句,您可以访问 D: 分区中的任何文件,因此您可以将配置文件上传到 d:\folder\file.config ,然后从您的代码中您可以通过 System.IO.File.ReadAllText(@ "d:\文件夹\file.config");但你不能用 C: partition 做他的事
  • 您可以使用 SCM 上传文件,或者将此文件的构建输出路径更改为 d:\folder\file.config。我建议在 d:\home\site\wwwroot 或 C:\DWASFiles\Sites[your-site-name]\VirtualDirectory0\site\wwwroot 下创建其路径,然后您可以从代码中访问它
  • 在云服务中你没有任何限制,因为它就像你拥有服务器和虚拟机一样
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-27
  • 1970-01-01
  • 1970-01-01
  • 2010-12-18
相关资源
最近更新 更多