我想使用的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帳戶,並且人們可以在我的服務器上訪問。
您需要爲虛擬目錄設置默認文檔。 – 2012-02-21 19:03:59
什麼是默認文件?我怎麼設置它? – olidev 2012-02-21 19:04:50
用戶名是域名,例如,如果你的域是mydomain.com,你的用戶應該是mydomain.com \ username這是否有意義,或者如果這是通過FtpWebRequest真正完成的ftp =(FtpWebRequest)FtpWebRequest.Create(ftpfullpath); ..?那麼你的用戶名將是FTP accout用戶名和ftp密碼 – MethodMan 2012-02-21 19:05:52