问题: 试图从azure文件共享中获取图像以进行操作。我需要将文件读作Drawing.Image进行操作。我无法使用uncpath创建有效的FileInfo对象或Image(我需要这样做以便在IIS上使用)
当前设置: 在IIS网站中附加名为Photos的虚拟目录,指向Azure文件共享的UNCPath(例如\ myshare.file.core.windows.net \ sharename \ pathtoimages) 这有效http://example.com/photos/img.jpg,因此我知道这不是权限或身份验证问题。
由于某些原因,我无法获得对File的引用。
var imgpath = Path.Combine(Server.MapPath("~/Photos"),"img.jpg")
\\resolves as \\myshare.file.core.windows.net\sharename\pathtoimages\img.jpg
var fi = new FileInto(imgpath);
if(fi.exists) //this returns false 100% of the time
var img = System.Drawing.Image.FromFile(fi.FullName);
问题是文件永远不会存在,即使我不能将该路径放在资源管理器窗口中并且100%返回img.jpg。
有谁知道为什么这不起作用? 我是否需要使用CloudFileShare对象才能读取我知道的文件?
答案 0 :(得分:0)
事实证明问题在于我需要将我的代码包装在模拟azure文件共享userid中,因为此时虚拟目录根本没有真正发挥作用。
using (new impersonation("UserName","azure","azure pass"))
{
//my IO.File code
}
我在这里找到了这个人模仿脚本。 Can you explain why DirectoryInfo.GetFiles produces this IOException?