微软Azure的Storage套件中提供了新的服务File Service,让我们运行在Azure中的程序都能共享存储,一个存储账号共享的没有上线,但每个共享的上限是5G。由于File Service采用了SMB2.1协议,所以对我们来说,存储是透明的,可以直接使用盘符路径的形式来对文件进行存储。例如.Net平台中System.IO.File。

下面简单介绍一下本次使用File Service的过程。另外,File Service是支持Linux的,不过这次是部署在Windows上面的。

准备存储账号


Azure中存储账号

建立File Service共享


通过File Service的API在一个存储账号中建立一个共享

可以直接使用微软提供的Sample建立共享,地址https://github.com/Azure-Samples

中国Azure提供的服务地址与微软默认的地址不一样,所以在配置文件中需要修改,可以在这里找到区别https://msdn.microsoft.com/zh-cn/library/azure/dn578439.aspx

挂载File Service共享


进入VM控制台,添加网络凭证

Cmdkey   /add:<yourstorageaccountname>.file.core.chinacloudapi.cn /user:<yourstorageaccountname> /pass:<YourStorageAccountKeyWhichEndsIn==>

可以查看网络凭证是否保存成功

cmdkey /list

 

保存网络凭证是为了在VM重启后自动挂载共享

 

挂载共享

net use * \\filedemo. file.core.chinacloudapi.cn\demo1

demo1是刚才通过API建立的共享

挂载成功后可以在文件浏览器中看到

至此,File Service已经成功挂载在VM中,其他的细节包括如何在Web以及WebRole、WorkRole中挂载存储共享可以参考这篇文章

http://blogs.msdn.com/b/windowsazurestorage/archive/2014/05/27/persisting-connections-to-microsoft-azure-files.aspx

目前在VM中,我们可以写一些程序RUN起来,直接像使用本地磁盘一样使用File Service,例如

不过有个问题,如果我们要在VM的IIS网站中访问,会报错。原因我想大家也很清楚,权限问题,IIS运行的账户和我们挂载共享的账户不是同一个。

在抹黑探索了一番之后,终于让IIS能够访问文件共享。就其本质实际上是和我们原来搭建网络文件共享一样,不过在云端我们无法看见具体的机器,是很抽象的,所以我们只有假象为主,实践为主。

以前在IIS中访问网站物理目录以外的本地目录,我们通常都使用虚拟目录,同样,如果我们有网络目录挂载在本机中,也是可以使用虚拟目录来访问,这里实际上是一样的。2台物理机器同样使用Windows系统,IIS在A机器中,共享文件夹在B机器中,在B机器分配一个用户并文件夹的使用权限赋予该用户,在A机器中挂载B机器的文件夹共享,配置A机器的IIS,增加虚拟目录并使用该账户登录。

这里实际上也是同样的道理,不过有些细节不一样。

可以把我们的VM想象成A机,而文件共享是B机。

为VM创建账户


这里创建的账户名称必须和Azure的存储账户名称相同,密码也是存储账号的访问密钥

 

设置IIS应用程序池标识


在IIS的应用程序池中找到该网站使用的APP,右键属性高级设置里设置其标识,输入刚才创建的账户名及密码

创建虚拟目录


创建虚拟目录,虚拟目录的地址请使用挂载共享使用的地址

点击这里 选择特定用户的设置,将刚才创建的账户名以及密码输入即可。

将File Service看做一台物理机的话,那么存储账户就是在其上面创建的账户,在自己的VM这边输入账户凭证即可。

在.NET中我们现在可以通过HttpContext.Current.Server.MapPath方法来获取真实的物理路径并对文件进行存储而不需要关注其具体位置了。

Azure File Service in IIS的更多相关文章

  1. 通过Azure File Service搭建基于iscsi的共享盘

    在Azure上目前已经有基于Samba协议的共享存储了. 但目前在Azure上,还不能把Disk作为共享盘.而在实际的应用部署中,共享盘是做集群的重要组件之一.比如仲裁盘.Shared Disk等. ...

  2. Azure File Storage 基本用法 -- Azure Storage 之 File

    Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在<Azure Blob Storage 基 ...

  3. 【Azure 云服务】Azure Cloud Service 为 Web Role(IIS Host)增加自定义字段 (把HTTP Request Header中的User-Agent字段增加到IIS输出日志中)

    问题描述 把Web Role服务发布到Azure Cloud Service后,需要在IIS的输出日志中,把每一个请求的HTTP Request Header中的User-Agent内容也输出到日志中 ...

  4. Windows Azure文件共享服务--File Service

    部署在Windows Azure上的虚拟机之间如何共享文件?例如:Web Server A和Web Server B组成负载均衡集群,两个服务器需要一个共享目录来存储用户上传的文件.通常,大家可能首先 ...

  5. Azure AD Domain Service(二)为域服务中的机器配置 Azure File Share 磁盘共享

    一,引言 Azure File Share 是支持两种认证方式的! 1)Active Directory 2)Storage account key 记得上次分析的 "Azure File ...

  6. Windows Azure Storage (20) 使用Azure File实现共享文件夹

    <Windows Azure Platform 系列文章目录> Update 2016-4-14.在Azure VM配置FTP和IIS,请参考: http://blogs.iis.net/ ...

  7. 【Azure 云服务】如何从Azure Cloud Service中获取项目的部署文件

    问题描述 在历史已经部署的云服务(Azure Cloud Service)中,如何获取到项目在很久以前的部署包文件呢? 解决办法 1)如果部署云服务是通过门户上传部署包到存储账号中,则可以直接从存储账 ...

  8. Windows Azure Cloud Service (39) 如何将现有Web应用迁移到Azure PaaS平台

    <Windows Azure Platform 系列文章目录> 本文将简单介绍,如何将企业内现有的ASP.NET应用程序迁移到Azure PaaS平台. 因为在迁移过程中,可能需要对现有的 ...

  9. 如何使用 OneAPM 监控微软 Azure Cloud Service ?

    不知不觉微软 Azure 已经进入中国市场近两年的时间.那么 Azure 平台的性能究竟如何?资源加载的延迟.虚拟机的稳定性等问题是否切实满足客户期许.这些都是大家对微软 Azure 这个国外的云服务 ...

随机推荐

  1. Linux命令对应的全称解释(转)

    Filesystem Hierarchy Standard(FHS) /:根目录,所有的目录.文件.设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者.  /bin:bin 就是二进 ...

  2. php我们需要把握面试题目金鸡基础

    1.session与cookie差分? 答:session:储存用户訪问的全局唯一变量,存储在server上的php指定的文件夹中的(session_dir)的位置进行的存放 cookie:用来存储连 ...

  3. InputStreamReader 和 OutputStreamWriter类使用方法简单介绍,及演示。

    InputStreamReader 和 OutputStreamWriter类使用方法简单介绍. 一.InputStreamReader类 InputStreamReader 将字节流转换为字符流.是 ...

  4. 【Hibernate步步为营】--双向关联一对一映射具体解释(一)

    一对一的映射在对象模型中是常常见到的,为了将对象模型转换为关系模型就必须在映射文件里进行配置,上篇文章讨论了一对一映射的单向关联的情况,重点是<one-to-one>标签的使用,须要在映射 ...

  5. The example program of C on point

    计划一: #include<stdio.h> #define N_VALUES 5 int main( void ) { float values[N_VALUES]; float *vp ...

  6. 王立平--android发育,转让eclipse可选颜色

    android:background="@android:color/white" 版权声明:本文博主原创文章.博客,未经同意不得转载.

  7. UVA 674 (入门DP, 14.07.09)

     Coin Change  Suppose there are 5 types of coins: 50-cent, 25-cent, 10-cent, 5-cent, and 1-cent. We ...

  8. Java自定义比较器Comparator

    1.数字排序  奇数在前,偶数在后.奇数降序,偶数升序.输入:"0,1,2,3,4,5,6,7,8,9"        输出:"9,7,5,3,1,0,2,4,6,8&q ...

  9. HIPO图

    HIPO图(Hierarchy Plus Input/Processing/Output)是表示软件结构的一种图形工具.以模块分解的层次性以及模块内部输入.处理.输出三大基本部分为基础建立的.它由两部 ...

  10. node.js基础:模块的创建和引入

    模块可能是一个文件,也可能是包含一个或多个文件的目录.如果模块是个目录,node.js通常会在这个目录下找一个叫index.js的文件作为模块的入口. 典型的模块是一个包含exports对象属性定义的 ...