【发布时间】:2018-04-04 18:25:36
【问题描述】:
问题: 试图从 azure 文件共享中获取图像以进行操作。我需要将文件作为 Drawing.Image 读取以进行操作。我无法使用 uncpath 创建有效的 FileInfo 对象或图像(我需要这样做才能通过 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 对象来读取我知道的文件?
【问题讨论】:
-
几点。你在你的网络应用程序中使用用户模拟吗?另外,尝试读取文件,即使是几个字节。有时 fileinfo.exists 有奇怪的行为。你有例外吗?
-
尝试 File.ReadAllBytes 导致我遇到不同的用户名/密码未验证类型错误,这确实是问题所在。这是有道理的,因为 server.mappath 现在使用的是与虚拟目录没有任何关系的 UNC。这导致我遇到了其他人的问题,这里的解决方案带来了快乐。 stackoverflow.com/questions/582988/… 感谢 Fabrizio 的建议。
标签: azure system.io.file fileshare