2012-02-21 174 views
1

我想使用的HttpWebRequest將文件上傳到服務器:遠程服務器返回錯誤:(405)不允許的方法

private void testUpload() 
{ 
    FileStream source = File.Open(@"C:\test.txt", FileMode.Open); 

    var request = 
    (HttpWebRequest)WebRequest.Create(new Uri("http://example.com/Project/")); 
    request.Method = "POST"; 

    request.BeginGetResponse(DataUploadCompleted, request); 
} 

private void DataUploadCompleted(IAsyncResult ar) 
{ 
    var request = (HttpWebRequest)ar.AsyncState; 
    var response = request.EndGetResponse(ar); 
} 

我得到這個異常:

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

當我訪問: 「http://example.com/Project/」,頁面顯示:

Directory Listing Denied 

This Virtual Directory does not allow contents to be listed. 

但是,我已經爲文件夾:項目chmod 777並允許IIS用戶上傳文件(完全權限)。

爲什麼我得到那個異常?

我搜索了一個解決方案。有人建議使用:

NetworkCredential myCred = new NetworkCredential("myusername", "mypassword"); 
request.Credentials = myCred; 

是myusername和mypassword是FTP的帳號嗎?如果我不得不使用FTP帳戶,那麼我不喜歡那樣。我可以使用其他憑證而不是FTP帳戶嗎?因爲我不想提供ftp帳戶,並且人們可以在我的服務器上訪問。

+0

您需要爲虛擬目錄設置默認文檔。 – 2012-02-21 19:03:59

+0

什麼是默認文件?我怎麼設置它? – olidev 2012-02-21 19:04:50

+0

用戶名是域名,例如,如果你的域是mydomain.com,你的用戶應該是mydomain.com \ username這是否有意義,或者如果這是通過FtpWebRequest真正完成的ftp =(FtpWebRequest)FtpWebRequest.Create(ftpfullpath); ..?那麼你的用戶名將是FTP accout用戶名和ftp密碼 – MethodMan 2012-02-21 19:05:52

回答

1

我需要在服務器上添加一個網頁來處理上傳。

0

去IIS,然後打開目錄瀏覽和啓用它,這應該工作

+0

這是不正確的,因爲用戶將瀏覽文件夾,並可以下載eveything – olidev 2012-02-21 20:23:03

相關問題