今天要做一个上传文件到其它服务器上,最后终于测试成功
这里,大家一定要注意权限的设置,一定要注意
1,在文件服务器上,创建一个本地帐户,比如登录名:upload,密码:upload,注意在创建的时候选择“密码永不过期”,去掉勾选“用户下次登录时须更改密码”的选项;
2,在要共享的文件夹上点右键,选择“属性”-“安全”,增加upload帐户可以写入的权限;
3,在要共享的文件夹上点右键,选择“共享”,共享此文件夹,并在“权限”按钮点击后添加帐户upload可修改;
4,在另外一台 Web 服务器上,创建登录名和密码与上面完全相同的本地帐户。
5,在web.config里,启用模拟:
在web服务器站点的web.config的<system.web>节点下里添加的代码
<identity impersonate="true" userName="upload" password="upload" />
6,在网站文件夹和C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files文件夹上设置帐户upload读写权限
7,接下来的工作就是上传文件了,这个时候你直接上传应该都是可以的,应该你刚才已经输入过访问文件服务器upload的帐号和密码,也就是说A和文件服务器已经建立了 信任连接,不过如果你重启服务器,刚才建立的连接也就不存在了。所以在A服务器web站点的Global.asax文件里加载一句话,让A服务器站点启动 的时候就和文件服务器建立信任连接
System.Diagnostics.Process.Start("net.exe", "use \\\\B服务器的IP\\upload \"123456\" /user:\"test\"");
上面的语句就是建立信任连接的,放在global.asax的好处就是站点启动就建立连接,因为这种信任连接是可持续性的,不会象session一样过期,只有在重启A服务器的时候这种信任连接才会消失。
在ASP.NET的上传文件里写:
C# 代码
protected void Button1_Click(object sender, EventArgs e)
{
string fileName = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName);
FileUpload1.SaveAs(@"\\192.168.3.1\free\" + fileName);
}
8,显示上传的文件:
在IIS里创建虚拟目录,指向“另一台计算机上的共享”,“连接为”输入上面创建的帐户名和密码。即可以http://www.mengxianhui.com/upload/hello.jpg进行访问