您可以使用WMI service在遠程計算機上啓動您的進程。您可以將您的exe文件構建到遠程計算機可見的共享目錄中,然後使用遠程計算機上的WMI啓動該exe文件。
有很多的例子在那裏要做到這一點,而是想說明,這不承擔任何身份驗證併發症簡單的方法是使用.vbs腳本文件:
strComputer = "acomputer"
strCommandLine = "calc.exe"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objProcess = objWMIService.Get("Win32_Process")
intReturnValue = objProcess.Create(strCommandLine, , , intPID)
WScript.Echo "Process ID: " & intPID
您還可以使用PsExec from SysInternals處理所有這些工作的細節。
在Visual Studio中構建exe文件後,您可以在本地機器上運行它以確保它做到了您想要的,然後當您準備在遠程系統上啓動它時,可以執行類似於高於VBS在遠程系統上啓動EXE。
您仍然需要提供一些機制來分配工作量,以便每個客戶都知道應該處理的問題的哪一部分。您可以在用於啓動遠程應用程序的命令行中,在exe目錄中的配置文件中,在數據庫表中提供此信息,或使用客戶端連接回的單獨的命令和控制類型服務器(儘管採用這種方法,你很快就會走上舞臺,學習如何使用現有的解決方案,而不是自己動手)。
您可能還需要包含某種遠程'kill switch'。您可以使用PsKill from SysInternals,或者如果您想要更優雅的關機,則可以使用與exe相同的目錄中存在的特定文件這樣的簡單操作作爲遠程進程關閉標誌。
您也可以考慮將CSScript支持添加到客戶端,以便遠程客戶端程序是靜態的並加載並編譯CSScript文件來完成這項工作。如果您在經常重新部署和重新啓動客戶端程序時遇到某種困難,或者您需要它們稍有不同(例如,可能會編寫一個程序爲每個客戶端生成單獨的腳本文件),這可能會非常有用。
我相信它很容易並行化。工作量可以分成不連續的塊。有人建議WCF,但是我相信我仍然有問題,我需要創建一個* .exe,安裝它之前,我可以運行它在每臺服務器上。我需要對這兩種方法進行的任何更改都需要一個新的* .exe,並將它們重新安裝到服務器上。 (這假設我沒有missunderstood的東西) – 2013-05-01 14:32:26
我想看看Hadoop和HDInsight:http://cloud.dzone.com/articles/hdinsight-writing-hadoop-map – duffymo 2013-05-01 14:33:18
我檢查出來,謝謝你的鏈接! – 2013-05-01 14:37:37