微软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. Qt学习一门:直接使用QT具

    今天,通过直接使用QT一些工具来编写命令行程序.你可以看到一种Qt更一般的用法. 内容很easy,输出电流日期. 首先,用一个QDate分类,可以使用QDate类的静态方法currentDate为了得 ...

  2. Android学习路径(23)应用Fragment建立动态UI——Fragment之间的通信

    为了要重用Fragment的UI组件.你应该为它们每个都构建一个完整独立的,模块化的组件来定义他自身的布局和行为. 一旦你定义了这些可重用的Fragments.你能够通过activity关联它们同一时 ...

  3. 递归遍历XML所有节点

    package xml; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.DocumentEx ...

  4. C# Windows Phone 8 WP8,切换各国语系免重开机 加速开发 送审有效率!!

    原文:C# Windows Phone 8 WP8,切换各国语系免重开机 加速开发 送审有效率!! 一般我们在开发Windows Phone 8 时,会考虑到各国语言的问题,但是你有想过吗?用实体手机 ...

  5. lua 远程调试 【zeroBrane 使用mobdebug】(good转)

    最近基于业务需求,学习了如何使用zeroBrane这个IDE实现C/S 模式下的 lua远程调试,废话不多,上效果图: ---------------------------------------- ...

  6. 如何设置多个同一页的tinymce编辑

    的页面设置多个tinymce编辑器 This example shows how to setup multiple editors on the same page and with differe ...

  7. Install Oracle 11gR2 on Debian wheezy(转)

    Install Oracle 11gR2 on Debian wheezy 出处:http://gaiustech.wordpress.com/2013/06/26/howto-install-ora ...

  8. [C/C++]_[VS2010来源与UTF8中国字符串转码ANSI问题]

    现场: 1.思想vs设置源文件UTF8编码,代码中国串出现在它必须是utf8编码,不幸的是,,假定源代码将出现在中国字符串,在存储器中转码ANSI编码. Unicode(UTF8签名) 代码页(650 ...

  9. 02、Unicode 汉子转码小工具

    原文:02.Unicode 汉子转码小工具 在做 Windows app 的时候,与服务器端交互使用的是 json 格式的数据,里面的汉字内容被 编码成 unicode 格式,在调试的时候不太方便,就 ...

  10. nodejs添加路由route步骤详解

    首先,毋庸置疑, 新建一个基础express站点.建好之后, 有三个文件需要code(当然,三个步骤顺序随意). 下面以添加一个'/about'为例说明. 1. 在views文件夹里,新建一个jade ...