1. 程式人生 > >.net 檔案上傳到另一臺伺服器上

.net 檔案上傳到另一臺伺服器上

總結了網上幾位大大的方法,終於除錯通過,方法如下:

1,在檔案伺服器上,建立一個本地帳戶,比如登入名:upload,密碼:upload,注意在建立的時候選擇“密碼永不過期”,去掉勾選“使用者下次登入時須更改密碼”的選項;
2,在要共享的資料夾上點右鍵,選擇“屬性”-“安全”,增加upload帳戶可以寫入的許可權;
3,在要共享的資料夾上點右鍵,選擇“共享”,共享此資料夾,並在“許可權”按鈕點選後新增帳戶upload可修改;

4.需要在應用程式伺服器的站點下任意新建一個虛擬目錄,然後“屬性”--》“連線到另一臺計算機”--》然後在路徑裡輸入“\\檔案伺服器的IP\共享的資料夾名稱”,確定即可
5,在另外一臺 Web 伺服器上,建立登入名和密碼與上面完全相同的本地帳戶。
6,在web.config裡,啟用模擬:      

web.config裡新增的程式碼 <identity impersonate="true" userName="upload" password="upload" />

7(可選).web站點的Global.asax檔案里加載一句話,讓伺服器站點啟動的時候就和檔案伺服器建立信任連線
System.Diagnostics.Process.Start("cmd.exe", "net use \\\\檔案伺服器的IP\\共享的資料夾名稱 \"123456\" /user:\"test\"");  

最後儲存的時候還是按平時儲存檔案的方式就行。

protectedvoid Button1_Click(

object sender, EventArgs e)
{
  
string fileName= System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName);
  FileUpload1.SaveAs(
@"\\192.168.3.1\free\"+ fileName);
}

注意: 1.以上步驟中的4,5必須按順序操作,如果後來刪除了虛擬目錄,則需要也刪除5中建立的使用者,然後按照4,5的順序再次建立即可(因為本人後來直接刪除虛擬目錄並重新建立,而沒有刪除5中的使用者,出現了問題。) 2.在做完以上步驟需要繼續完成下載或開啟功能時,如果出現要求輸入使用者名稱和密碼登入共享資料夾的情況,而設定檔案伺服器的本地策略無果的時候,在虛擬目錄中重新建立一個預設站點之外的站點,指向這個共享資料夾即可(注意新建站點的埠是否衝突)。