2012-10-10 85 views
1

在我的ASP.NET應用程序中,我必須顯示一些圖像。實際上這些圖像保存在一些其他服務器。在我的數據庫中有文件路徑。我需要從遠程服務器訪問我的應用程序文件。我怎樣才能做到這一點?我使用下面的代碼使用asp.net訪問另一個服務器的文件頁面

imgFiles = Directory.GetFiles(strFullPath, 
           strPkStock + "_*", 
           SearchOption.TopDirectoryOnly); 

但是,這將引發一個錯誤,說「對路徑的訪問被拒絕」

+0

您的IIS工作進程需要訪問該路徑?你檢查過了嗎? – lahsrah

回答

6

你必須有其他的服務器上的文件系統訪問做到這一點,我相信你不會有它。

完成它的最短途徑是,從其他服務器發佈圖像文件夾,並使用圖像的url來訪問它,而不是文件系統路徑。這樣,你的asp.net應用程序將能夠輕鬆訪問這些圖像。實際上,它將是客戶端瀏覽器,它將直接從其他服務器訪問這些圖像,您只需更改圖像的src。

+0

+1使圖像通過HTTP訪問可能是最簡單的解決方案(也可能需要考慮安全隱患......) –

2

Murtuza Kabul建議通過HTTP/HTTPS訪問文件可能是最簡單的方法。您可以使用HTTPS和客戶機認證來防止其他用戶/機器從同一個HTTPS服務器讀取文件。

如果要直接訪問其他服務器的共享文件夾上的文件,則需要確保訪問文件的代碼在帳戶下運行,並至少具有該共享文件夾的讀取權限。

注意,默認配置(其中的代碼在任何特殊的匿名賬戶或主叫用戶的憑據運行)帳戶代碼下運行,不會對其他服務器的權限(匿名becuse它是本地帳戶,用戶由於對代表團的限制也被稱爲「NTLM一跳地獄」)。

您最簡單的選擇是在某個帳戶下運行應用程序民意調查,該帳戶擁有其他服務器的權限並且可以取消模擬當前用戶以處理帳戶。您還可以顯式阻止某個帳戶訪問遠程文件。

相關問題