2011-03-02 69 views
1
VS C# 2005 

我使用下面的代碼將文件上傳到運行Windows IIS 5.1的服務器。使用webclient上傳文件405錯誤問題

我只是在運行Windows XP的本地服務器上進行測試。但是,我不斷收到以下錯誤消息:

The remote server returned an error (405) Method Not Allowed 

我確定這是一個IIS問題,也許是有權限的東西。但是,我配置了IIS以允許讀取,寫入和目錄瀏覽。

我想上傳的config.xml文件與可執行文件位於同一目錄中。

private void upload_config_to_server() 
    { 
     Uri url = new Uri("http://10.10.10.3/softphone/config.xml"); 

     WebClient wc = new WebClient(); 
     if (!wc.IsBusy) 
     {     
      try 
      { 
       wc.UploadFile(url, null, "config.xml"); 
      } 
      catch (WebException webex) 
      { 
       Console.WriteLine("Web Exception {0}", webex.Message); 
      } 
      catch (Exception ex) 
      { 
       Console.WriteLine("Exception {0}", ex.Message); 
      } 
     } 
    } 

非常感謝您的任何建議,

回答

2

只有註冊的文件類型可以接受在IIS中的POST方法請求。有關更多詳細信息,請參閱本文「How to resolve HTTP 405」文章。

另外,爲了發佈文件,您需要確保服務器端腳本正確處理此上傳,如果您希望它出現在您上傳的文件夾中。您的URL(wc.UploadFile中的第一個參數)應該是處理上載的服務器端腳本。

+0

我已經做了一切設置IIS。但是,OK按鈕仍然呈灰色。所以我無法做任何事情。但是,我設法通過在wc.UpLoadFile中傳遞「PUT」參數來實現它。它爲什麼與「PUT」一起工作?謝謝。 – ant2009

+0

HTTP PUT只是另一種方法,包括GET,POST,DELETE等。它僅用於文件上傳,URI是保存文件的目標。我想這正是你正在尋找的東西,而不是正確的處理POSTs ... – Sergey

+0

此外,請確保你有一個**動作方法**的** POST與**正確的路由**在你的控制器。 –