zoukankan      html  css  js  c++  java
  • 在ASP.NET将程序中将上传的附件存储到另一台文件服务器上的实现

    假定有两台服务器:A和B,其中A为Web服务器(IP:192.123.1.1, 为iis发布程序的服务器 ),B为文件服务器(IP: 192.123.2.2)

    1. 在文件服务器B中某个磁盘下创建一个共享文件夹DocShare,同时在该服务器上创建一个用户,如docUser, 并给此用户分配共享文件夹的读写权限
    2. 在WEB服务器A中也创建同一个用户,如 docUser, 同时密码与B中的docUser必须保持一致。并将用户docUser加入到IIS_WPG用户组
    3. 创建一个新的应用程序池docPool, 并设置权限认证,输入用户名docUser及密码。
    4. 将IIS发布的程序其应用程序池设置为docPool
    5. 在IIS发布的程序根目录下添加一个虚拟目录,名称为files,虚拟目录映射到服务器B的共享目录路径,如:\192.123.2.2DocShare 同时设置特定用户访问,输入用户名docUser,密码。
    6. 在程序代码中,设置文件的保存路径为 Server.MapPath(“files”) 即:虚拟目录的路径。

    公司服务器使用的挂载盘有问题经常出现数据损坏问题,故需要进行文件备份操作。

    备份的数据为用户使用应用时上传的附件,其更新时间为其上传时间,并且上传后不会进行修改操作,所以处理方案为:先手动复制文件至备份文件目录下,windows配置定时任务每日晚上11点开始执行备份操作,备份近2天上传的文件,旧数据不会删除。

    bat语句如下:

    ROBOCOPY D:originalPath D:ackupPath /E /MAXAGE:2 /R:5 /LOG+:D:ackupLog.txt
    说明:
    路径前者为需要备份的文件路径,后者为备份路径。
    /E  表示复制子目录,包括空的子目录(不设置这个就只复制当前文件夹文件不复制子文件夹)
    /MAXAGE:2 表示最长的文件存在时间,排除早于2天的文件(没有这个就是全部复制)
    /R:5 表示失败副本的重试次数(建议要设,默认值为一百万 = =)
    /LOG+:Dxxx.txt  将状态输出到日志文件(附加到现有日志中)
    更多用法可在cmd中输入:help robocopy查看
    测试结果说明:
    每次运行只拷贝近2天内修改的文件,对早于2天的文件不会进行任何操作。
    原目录下近2天文件被修改,同步时会在相应备份文件中执行同样的修改操作。
    原目录下文件被删除,对应的备份文件不受影响。
    每次执行后同步了哪些文件可查看日志。其中,多余文件和失败字节数表示备份目录有、而原目录没有的文件。
    windows定时任务配置步骤:
    可详见http://blog.csdn.net/woshixuye/article/details/18050769
    ---------------------
    作者:屎大小仙女
    来源:CSDN
    原文:https://blog.csdn.net/wxzhangxin/article/details/78215347
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    Arduino学习笔记34
    Arduino学习笔记33
    Arduino学习笔记32
    Arduino学习笔记31
    iOS7新JavaScriptCore框架入门介绍
    iOS7新JavaScriptCore框架入门介绍
    Objective C类方法load和initialize的区别
    Objective C类方法load和initialize的区别
    关于performSelector调用和直接调用区别
    apk签名原理及实现
  • 原文地址:https://www.cnblogs.com/tianxiang2046/p/4705275.html
Copyright © 2011-2022 走看看