2012-02-21 335 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

相关问题