有時我們需要將來自于客戶端的文件上傳到WEB服務器端,并在服務端將文件存儲到第三方文件服務器中存儲。
實現(xiàn)如下:
1、在文件服務器B上建立一共享文件夾,同時在該服務器上創(chuàng)建一用戶,如DocShareUser,給此用戶分配共享文件夾的讀寫權(quán)限
2、在WEB服務器A上也同時傳建一同名用戶DocShareUser (注意,用戶名和密碼必須一致)
3、在網(wǎng)站下添加一虛擬目錄,虛擬目錄的物理路徑執(zhí)行服務器A的共享目錄,路徑符合UNC規(guī)則,如\\ServerB\DocShare,傳遞身份驗證用戶設置為默認即可。

4、信任關系權(quán)限,只有在建立信任的基礎上,方可向B服務器上傳文件,該問題可通過兩種方式解決,
方式1:在Web.Config中增加運行模擬帳號identity impersonate="true" userName="DocShareUser" password="password" />
方式2:在Global.asax中加載,網(wǎng)站一運行就自動建立信任關系,System.Diagnostics.Process.Start("net.exe", "use \\\\B服務器的IP\\共享文件夾 \"B服務器上的密碼\" /user:\"B服務器上的用戶名\""),B服務器上的用戶是指能寫入那個共享文件夾的用戶 (建議使用此方式,不會影響網(wǎng)站認證的變化)
5、步驟4如采取Web.Config中增加模擬帳號方式,則需要給C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files臨時目錄分配所建用戶DocShareUser的讀寫控制權(quán)限 (路徑視安裝Framework版本而定)

6、代碼中通過Server.MapPath("虛擬目錄")方式獲取上傳地址,寫入文件流即可
7、注意上傳文件IIS有默認4M限制,可通過WEB.config修改,如下
復制代碼 代碼如下:
httpRuntime maxRequestLength="10240" appRequestQueueLimit="90" executionTimeout="90"/>
以上在WIN2008R2+IIS7下驗證通過。
您可能感興趣的文章:- Asp.net獲取服務器指定文件夾目錄文件并提供下載的方法
- asp.net檢查服務器上目錄或文件是否存在的方法
- 修改服務器配置 讓asp.net文件后綴名隨心所欲
- 修改服務器配置,讓asp.net文件后綴名隨心所欲
- asp.net實現(xiàn)服務器文件下載到本地的方法