运用域用户实现asp.net把文件上传到另外一台服务器
asp.net把文件上传到另外一台服务器
关于asp.net如何把文件上传到另外一台服务器,查到几篇文章都是在两个服务器创建相同名称和密码的用户,然后在Global.asax中运行 Net use。我在IIS7.0(Windows 2008 R2)下按有关文章操作,都没能实现,除非把有关文件授权everyone。这说明问题任然在于授权。
我通过审核事件跟踪IIS读取共享文件的用户,发现并没有用上述创建的用户。查阅有关文章得知,IIS7访问文件系统用的身份ID在对应的应用程序池设定。为了平时的访问安全和方便,我的几台服务器已经组建一个域。我设想用域用户应该能更方便实现web服务器把文件上传到另一台服务器,并成功实现了。步骤如下:
1. 在域服务器创建域用户QC\WebFileReader(QC为域名);
2. 在文件服务器创建文件共享WebFiles,授权QC\WebFileReader的本地和共享完全控制访问权限;
3. 在Web服务器把QC\WebFileReader加入本地IIS_IUsers组;在网站创建虚拟目录FilesExt,用特定用户QC\WebFileReader连接到文件服务器的WebFiles,测试正常。设置网站对应的应用程序池“高级设置-进程模式-ID”为QC\WebFileReader。
重启Web服务器,运行测试程序,成功上传文件到文件服务器!
此方式无需在Global.asax中加载System. Diagnostics. Process. Start( “net.exe”, “use \\B服务器的IP\共享文件夹 “B服务器上的密码” /user:“B服务器上的用户名””)这样的语句。只需在域服务器上创建一个用户,而不是每台服务器创建一个相同名称和密码的用户。
有关截图
图片: