zoukankan      html  css  js  c++  java
  • Azure File Service in IIS

    微软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.cndemo1

    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方法来获取真实的物理路径并对文件进行存储而不需要关注其具体位置了。

  • 相关阅读:
    开源项目
    [Accessibility] Missing contentDescription attribute on image [可取行]失踪contentDescription属性图像
    Android 布局 中实现适应屏幕大小及组件滚动
    EF 错误记录
    EasyUI 加载时需要显示和隐藏 panel(面板)内容破版问题
    IE 报表缩放后页面破版
    VS 2017 引入nuget 问题
    SSRS 报表显示页面 asp net session丢失或者找不到 asp net session has expired or could not be found()
    log4net 配置
    网站
  • 原文地址:https://www.cnblogs.com/dopeter/p/4874552.html
Copyright © 2011-2022 走看看