2013-05-10 86 views
0

我試圖從本地機器上的另一個IIS站點下載文件。我有我的主網站試圖從另一個公共站點下載,其中包含一些用戶可以下載的文件。WebClient下載 - 「訪問路徑'c:\ windows \ system32 \ inetsrv \ MyPrintManager.exe'被拒絕」

[HttpGet] 
public ActionResult DownloadMyPrintManagerInstaller() 
{ 
    bool success; 
    try 
    { 
     using (var client = new WebClient()) 
     { 
      client.DownloadFile(new Uri("http://localhost:182//MyPrintInstaller.exe"), "MyPrintManager.exe"); 
     } 
     success = true; 
    } 
    catch (Exception) 
    { 
     success = false; 
    } 

    return Json(new { Success = success }, JsonRequestBehavior.AllowGet); 
} 

出於某種原因,它正試圖從C:\windows\system32\inetsrv\MyPrintManager.exe下載的文件?有誰知道我可以如何避免它指向該目錄?我是否需要修改我的代碼或IIS配置?

我的這個網站的虛擬目錄是一個坐在我C盤上的文件夾,而我真正想要下載的文件就在那個目錄下。

回答

4

不,它試圖將文件保存到C:\windows\system32\inetsrv\MyPrintManager.exe

這是因爲C:\windows\system32\inetsrv是您的進程的工作目錄,並且您剛剛給出了一個相對文件名。

指定一個絕對文件名,它說明你想要存儲文件的位置,它應該沒問題。

+0

所以我需要指定第二個參數爲'C:\ MyPrintManager.exe'或類似的東西?編輯:標記目前不適合我工作 – gwin003 2013-05-10 15:01:48

+0

@ gwin003:類似的東西 - 但可能不直接在您的C驅動器的根... – 2013-05-10 15:17:19

+0

我還沒有找到合適的目錄下載到,但我得到相同的錯誤信息。任何想法我可以下載到什麼目錄而不使用客戶端用戶名?或者有什麼辦法可以告訴它下載到默認的下載目錄? – gwin003 2013-05-10 17:02:41

-1
WebClient web = new WebClient(); 
string url = "http://.../FILENAME.jpg"; 
web.DownloadFile(new Uri(url), "C:/FILENAME.jpg"); 
+0

這不會嘗試回答OP正在查找的權限問題。事實上,他在他的問題中擁有完全相同的代碼功能。 – paqogomez 2013-11-08 00:03:19