我是Windows Azure的新手。我在我的服务器上有一个应用程序,我没有使用visual studio集成或打包移动到VM只是复制了应用程序并设置了与之相关的所有内容,我写入特定文件的应用程序的一部分 - 我知道它不是一个好主意,但我这样做是为了好玩。设置文件夹访问权限,以便每个人都可以写入它(实际上它被设置为apppool可以写入它然后我这样做,以便每个人都可以在Azure上写入它)。 代码是这样的
using (FileStream stream = new FileStream(System.Web.HttpContext.Current.Server.MapPath(fileName), FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
stream.Position = stream.Length;
stream.Write(RawBytes, 0, RawBytes.Length);
stream.WriteByte(13);
stream.WriteByte(10);
}
它在我的机器上运行正常但是由于某种原因它在天蓝色的VM上无法工作我知道Azure使用不同的存储机制,有人可以指导我做什么准备
答案 0 :(得分:1)
在云中运行应用程序时,您可以使用许多不同的选项来管理持久性,并确保写入本地文件系统是一种选择。但是,如果您需要从多个VM或本地访问该文件,您将遇到问题。出于这个原因,我们创建了Azure文件服务(请参阅Getting Started with Files),它允许您创建SMB文件共享,然后您可以使用来自多个VM的标准Windows API读取/写入该文件共享。这对于将现有的本地应用程序迁移到云尤其有用。
对于新应用,您可能需要考虑使用我们的其他存储选项之一 - 包括Azure Blobs, Tables, Queues,SQL Azure或Doc DB等。
答案 1 :(得分:0)
由于您在azure VM上没有正确的权限,因此无效。您可以在Azure上写入文件系统。一种选择是写入Windows Temp目录:
var filepath = System.IO.Path.GetTempFileName();
System.IO.File.WriteAllText(filepath, "some text");
有关更多选项,请参阅:azure-faq-can-i-write-to-the-file-system-on-windows-azure