我想使用的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