2016-05-13 54 views
1

我是一名新手,正在使用ASP.Net C#4.5,VS 2012開發Web應用程序。 我想在另一臺服務器上打開「ixo-global」文件夾\ 10.23.23.23 \ ixo-global \(只是這個文件夾)。我這樣做是使用下面的代碼:無法在asp .net網站打開文件夾

代碼1

ProcessStartInfo startInfo = new ProcessStartInfo(FolderPath); 
startInfo.WindowStyle = ProcessWindowStyle.Normal; 
Process.Start(startInfo); 

代碼2

System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo() 
{ 
FileName = FolderPath, 
UseShellExecute = true, 
Verb = "open" 
}); 

,當我跑在本地主機上的代碼的每個作品。但在IIS上發佈後,它不會在客戶端瀏覽器中打開文件夾。這可能是由於安全措施。 我能夠使用安裝IIS的服務器上的運行來訪問此文件夾。 我參考this link,代碼運行但文件夾不在客戶端瀏覽器打開。

我該怎麼辦? TIA。

+0

最終目標是什麼?爲什麼客戶需要瀏覽服務器的文件? –

+0

是的。這是共享路徑上的文件夾。現在,所有權限都授予此文件夾 –

+0

但是,一旦打開文件夾,用戶應該怎麼做_do_?添加文件?刪除所有文件?選一個並打開它? –

回答

0

您是否檢查過該文件夾是否只有讀取權限?

+1

是的。它有權利。我能夠在指定文件夾中創建新文件 –

+0

使用Iframe從服務器請求文件。您可以使用JavaScript創建一個,並將其src作爲服務器端點。 – makoulis

+0

我有一個鏈接按鈕。點擊它,我可以使用IFrame打開這個文件夾嗎?你能分享代碼嗎? –

0

「System.Diagnostics.Process.Start」不適用於Web上下文,僅適用於桌面應用程序。

+0

是的。我很難理解這一點! :(有沒有解決方案? –

1

您正在啓動服務器上的進程,而不是在瀏覽器的桌面上。當你在本地運行它時,你是服務器,所以你會看到資源管理器窗口打開。當你發佈到不同的服務器時,瀏覽器會在服務器上打開,所以你看不到它。

有沒有打開一個瀏覽器窗口查看服務器上的文件,除非客戶有辦法:

  • (通過文件共享EG)的直接路徑的文件夾
  • 權限訪問文件夾。

你也可以看看,讓你「瀏覽」服務器」的文件在資源管理器的窗口,或者如果客戶端確實有機會直接在文件夾的第三方控件(如果客戶端意思可以瀏覽到資源管理器中的文件夾),然後您可以將路徑放到file://鏈接中的文件夾中,並在客戶端的瀏覽器中顯示