2009-11-26 271 views
2

爲了提高我的ASP.NET應用程序的部署/編譯過程,我想提出一個.batXCOPY到遠程服務器

  • 建立在釋放模式當前的解決方案
  • xcopy文件到遠程服務器

通過命令行創建發佈版本非常簡單。

但是,如何將文件複製到遠程服務器?

我想我必須將遠程目標映射到網絡驅動器(?)。但是,我無法連接到遠程服務器,儘管我已啓用服務器上文件夾的文件共享。也許防火牆阻止了這個請求?我應該打開哪個端口?還是有另一種解決方案?

編輯

感謝所有的答案,到目前爲止,但我可能需要就如何設置服務器上的文件夾共享一個一步一步的指導。我共享了該文件夾,打開了端口445,以便我可以連接到服務器,但仍然無法從本地計算機連接到服務器,以便將網絡路徑映射到系統驅動器。

+0

如何設置服務器可能是一個問題serverfault.com而不是堆棧溢出 – Grzenio

回答

3

既然你正在部署一個ASP.Net網站,我假設你是在一個Windows環境(不聰明?:))。
SO!忘掉.bat吧,去POWERSHELL

無論如何,這不是你的問題的重點... 要複製到遠程文件夾,您應該有權在遠程計算機上這樣做。

檢查您的本地計算機和遠程計算機上是否有相同的帳戶。 例如,如果您在登錄「Pipo」的域名「Work」中登錄本地計算機,則必須授予此帳戶的權限才能寫入遠程計算機上的特殊文件夾。

您可以通過右鍵單擊該文件夾,安全選項,然後選擇正確的身份來實現該目標。

這裏是一步一步的指導:

http://support.microsoft.com/kb/301281

3

這可能是值得通過UNC路徑

\\機\文件夾

這需要你有機會獲得從源服務器到文件夾移動與XCOPY文件。檢查該文件夾是否已被共享,並且相關的讀寫權限已被授予。

+0

有沒有關於如何設置共享服務器的分步指南?我似乎無法得到它的工作。 – Max

1

如果服務器在您的本地網絡上,我建議使用robocopy而不是xcopy - 它有更多有用的選項和功能來重試錯誤。它處理UNC名字就好了(因爲我相信xcopy也是)。我認爲它可以在較新的Windows客戶端上使用 - 如果它不在您的計算機上的Google上 - 它可用於各種資源工具包下載(我不知道微軟是否/何時開始將它包含在操作系統發行版中的細節,因爲我已經現在已經在我的實用工具包中使用了很長時間了)。

如果服務器不是本地的,則可以腳本命令行FTP客戶端來執行傳輸。如果您需要額外的靈活性或安全性,還有許多其他文件傳輸選項,包括WinSCP

當然,在任何情況下(本地或遠程服務器),服務器的權限和身份驗證都需要正確設置纔能有機會運行。

1

您可以使用任何UNC路徑:\\machine\sharedFolder。如果您不想設置共享文件夾,則可以使用$符號引用機器上的任何驅動器:\\machine\c$\program files\etc。如果您的計算機位於Active Directory中,或者目標計算機上的本地用戶具有相同的用戶名和密碼,則Windows將無縫處理身份驗證。

0

我想你想:

XCOPY c:\myproject\build\*.* \\server\\build\ /S /E 
0

上述所有的似乎是盛大的答案 - 你可以看看使用一個MSBuild腳本和的MSBuild社會任務做了這一切 - 他們可以拉上你的建立並ftp到遠程服務器。

我剛剛爲我們的一個網站設置了這一點,花了幾個小時讓我的頭靠近它,但它在發佈版本中構建網站,更新生產配置文件,刪除不必要的文件,然後執行上傳。

0

找這麼多的答案在這裏後的解決方案

"xcopy D:\\folder\\container \\\\servername\\folder\\container\\ \/E \/H \/Y"