我对这个 Windows Azure Blob 存储有点坚持。
我有一个接收文件路径(本地)的控制器。
所以在网页上我做了这样的事情:
http:...?filepath=C:/temp/myfile.txt
在 Web 服务上,我想获取此文件并将其放在 blob 服务上。当我在本地启动它时没有问题,但是当我发布它时,无法获取文件。我总是得到:遇到错误:找不到路径“C:/temp/myfile.txt”的一部分。
有人能帮我吗。有解决办法吗?
首先,我想说要获得适当的帮助,您需要对您的问题提供更好的描述。“在网络服务上”是什么意思?它是一个似乎与您的部分问题描述相匹配的 WCF Web 角色。但是,大多数 Web 服务使用http://whatever.cloudapp.net/whatever.svc以及http://whatever.cloudapp.net/whaterever.aspx?whatever (如果添加)。你有没有在你的应用程序中做过类似的事情。
您还在代码中提到了控制器,这让我认为它是一个基于 MVC 的 Web 角色应用程序。
我正在写以上信息,以帮助您下次更好地提出您的问题。
最后,根据您提供的内容,您正在从本地文件系统 (C:\temp\myfile.txt) 读取文件并上传到 Azure Blob。这将在计算模拟器中工作,并且肯定会在 Windows Azure 中失败,因为:
在您的 Web 角色代码中,您将无权在 C:\ 驱动器上写入,这就是文件不存在并且您收到错误的原因。最好的办法是使用 Azure 本地存储在其中写入任何内容,然后使用本地存储读取文件,然后上传 Azure Blob。Azure 本地存储旨在写入来自 Web 角色的任何内容(您将拥有写入权限)。
最后,我还担心您的应用程序设计,因为 Azure VM 没有持久化,因此有一个解决方案可以写入 VM 中的任何位置并不好,您可能需要在不使用系统内存的情况下直接写入 Azure 存储(如果可能的话)。
您是否验证该文件存在于 Azure 服务器上?