• ASP.NET将文件写到另一服务器


    有时我们需要将来自于客户端的文件上传到WEB服务器端,并在服务端将文件存储到第三方文件服务器中存储。

    实现如下:

    1、在文件服务器B上建立一共享文件夹,同时在该服务器上创建一用户,如DocShareUser,给此用户分配共享文件夹的读写权限

    2、在WEB服务器A上也同时传建一同名用户DocShareUser (注意,用户名和密码必须一致)

    3、在网站下添加一虚拟目录,虚拟目录的物理路径执行服务器A的共享目录,路径符合UNC规则,如\ServerBDocShare,传递身份验证用户设置为默认即可。

    image

    4、信任关系权限,只有在建立信任的基础上,方可向B服务器上传文件,该问题可通过两种方式解决,

    方式1:在Web.Config中增加运行模拟帐号<identity impersonate="true" userName="DocShareUser" password="password" />

    方式2:在Global.asax中加载,网站一运行就自动建立信任关 系,System.Diagnostics.Process.Start("net.exe", "use \\B服务器的IP\共享文件夹 "B服务器上的密码" /user:"B服务器上的用户名""),B服务器上的用户是指能写入那个共享文件夹的用户 (建议使用此方式,不会影响网站认证的变化)

    5、步骤4如采取Web.Config中增加模拟帐号方式,则需要给C:WindowsMicrosoft.NETFramework64v4.0.30319Temporary ASP.NET Files临时目录分配所建用户DocShareUser的读写控制权限 (路径视安装Framework版本而定)

    image

    6、代码中通过Server.MapPath("虚拟目录")方式获取上传地址,写入文件流即可

    7、注意上传文件IIS有默认4M限制,可通过WEB.config修改,如下

    <httpRuntime maxRequestLength="10240" appRequestQueueLimit="90" executionTimeout="90"/>

    以上在WIN2008R2+IIS7下验证通过。

  • 相关阅读:
    一个业务场景的优化讨论
    关于Box Anemometer的安装配置遇到的几个坑
    CentOS6.5内 MySQL5.7.19编译安装
    CentOS6.5内 Oracle 11GR2静默安装
    始祖公——陈憺 河浦人文 (转载)
    Andriod- 从网络下载文件保存到SDCARD里
    Android Studio 如何添加第三方插件
    Android- SharedPreferences的封装
    Java/Andriod- 常用的 Android Studio 快捷键
    Java/Andriod- 动态权限申请
  • 原文地址:https://www.cnblogs.com/hs8888/p/5520603.html
Copyright © 2020-2023  润新知