我对在Azure中负载均衡2个以上的Windows VM感兴趣。不过,我的主要要求是每个VM之间的'uploads'文件夹需要保持一致。此文件夹中的文件由我们的管理员用户FTP,然后他们需要在C#MVC Web应用程序中选择这些文件。由于您可以通过FTP连接到一个VM,但Web连接可能是另一个,因此上传必须集中。
看起来现在处于预览状态的新Azure文件会有所帮助,因为它们让我设置了每个虚拟机都可以访问的共享驱动器。我的想法是FileZilla Server允许FTP到达这个共享的“驱动器”,Web应用程序将访问它以显示内容。
我已注册Azure文件预览,并设置了共享,为了实验,将其持久映射到Drive Z.我还创建了一个新用户,并确保他们也有与Z持续映射到同一个驱动器。
但我似乎无法对远程桌面外的任何事情做任何事情。 FileZilla尽管已将其服务设置为使用此新帐户登录,但不会显示此驱动器的内容,也不会向其写入任何内容。同样,尽管将Passthrough Authentication切换到虚拟文件夹的新帐户,但我的Web App无法访问文件内容。
有没有人知道通过网络路径或驱动器号访问此驱动器的方法?这是不可能的Azure文件,因为它们是?是否存在跨VM共享某些blob的其他解决方案,但将其视为本地驱动器或网络共享?
[UPDATE]
这可能会有所帮助。设置共享,并在cmd提示符下使用cmdkey和net use运行特殊创建的用户(如http://blogs.msdn.com/b/windowsazurestorage/archive/2014/05/27/persisting-connections-to-microsoft-azure-files.aspx中所述),如果我将IIS中的虚拟文件夹指向此共享,则使用创建的特定帐户和测试连接,我得到: 测试:身份验证(绿色勾选;“指定的用户凭据有效”) 测试:授权(红叉;“路径不存在或路径中的环境变量无法扩展以验证它是否存在。”)
虽然仍处于runas cmd提示符下,但我可以访问该共享,因此它不是特定的权限问题。由于某种原因,似乎IIS无法使用该用户访问共享。 Azure文件的限制是我无法专门授予该共享中文件夹的任何类型的权限。
答案 0 :(得分:5)
对我有用的是:
Load User Profile
属性设置为 true /persistent:true
切换),如您所述针对第5点的小型PowerShell代码段:
$share = "your-storage-account.file.core.windows.net\yoursharename" $usr = "your-storage-account" $key = "your-storage-key" #store credentials for the network share - must be done for the user that will run the app pool cmdkey /add:subclub.file.core.windows.net\images /user:$usr /pass:$key net use z: "\\$share" /user:$usr $key /persistent:yes
答案 1 :(得分:5)
这里的答案证明是有帮助的。
runas / user:{appuser} cmd.exe
cmdkey /add:{storage-account}.file.core.windows.net / user:{storage-account} / pass:{account-key}
注意不需要净使用。不需要映射的驱动器。
现在这是关键部分。从您的应用程序,您必须写入UNC路径。
\ {存储帐户} .file.core.windows.net \
离。
File.WriteAllText("\\\\{storage-account}.file.core.windows.net\\share\test.txt", "contents goes here");