2010-04-21 58 views
0

我有一個intranet asp.net應用程序,連接到它的所有客戶端都有一個特定的.exe文件在他們的本地磁盤,現在我想要執行.exe文件在Intranet服務器中託管的.net應用程序。我用這個代碼來做到這一點從asp.net應用程序訪問本地exe文件

Dim psi As New System.Diagnostics.ProcessStartInfo() 
psi.WorkingDirectory = "C:\\" 
psi.FileName = "file:///c:/Project1.exe" 
psi.Arguments = cTimeMaster.APQPID 
psi.UseShellExecute = False 
System.Diagnostics.Process.Start(psi) 

但它是拋出一個錯誤,系統找不到指定的文件。 它是否在本地系統或其他任何事情上有權限問題,任何幫助將大大appriciated。 感謝和問候

+0

hi sansknwoledge。爲了便於閱讀,您可能希望在每個代碼行的開頭添加四個空格,以便代碼按照您預期的方式進行格式化。 – chiccodoro 2010-04-26 12:16:59

回答

2

正如Darin和你提到的,exe文件位於客戶端。相反,您的VB.NET代碼在服務器上運行。它試圖在服務器的c:\驅動器上找到exe文件。

如果您想訪問客戶端上的文件,您需要添加一些客戶端代碼。這導致了大量的與安全相關的和技術的限制 - 我現在自己與這些掙扎......

對於客戶端的代碼,你可以考慮MS Silverlight(它允許你在VB.NET代碼和做很多事情),或者你可以在你渲染的HTML頁面中嵌入一個VBScript或者JavaScript,只需google爲「run exe from javascript」或者「從vbscript運行exe」找到例如http://www.dotnetspider.com/resources/19547-Run-exe-file-Java-Script.aspx(但是,這隻適用於Internet Explorer)。

請務必記住,ASP.NET是一種服務器端技術。 VB.NET代碼被編譯成在服務器上運行的程序集。它通常呈現一個HTML頁面並將其發送給客戶端,然後客戶端上的瀏覽器呈現該頁面,因此應在客戶端上運行的代碼必須呈現在HTML頁面中。

+0

謝謝你的信息,我可以嘗試與silverlight我的手。 – sansknwoledge 2010-05-08 10:03:46

2

該文件位於客戶端計算機上。出於安全原因,您無法使用ASP.NET執行位於客戶端計算機上的文件。

+0

好吧,有這個 – sansknwoledge 2010-04-22 02:26:44

相關問題