远程服务器返回错误: (405) 不允许的方法。

wangjianblue 2013-04-11 06:10:49
private void UpLoadFile(string fileNamePath, string serverFileURL)
{
// 创建WebClient实例
WebClient myWebClient = new WebClient();
myWebClient.Credentials = CredentialCache.DefaultCredentials;
// 要上传的文件
FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read);
BinaryReader r = new BinaryReader(fs);
try
{
//使用UploadFile方法可以用下面的格式
byte[] postArray = r.ReadBytes((int)fs.Length);
Stream postStream = myWebClient.OpenWrite(serverFileURL, "PUT");
if (postStream.CanWrite)
{
postStream.Write(postArray, 0, postArray.Length);
}
postStream.Close();
}
catch
{
//MessageBox.Show("文件上传失败,请稍候重试~");
}
}



UpLoadFile("C:\\301.bmp", "http://192.168.0.205:8005/Duty/");

权限都是EVERYONE IIS7.0
...全文
30193 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
WeiWY 2014-09-04
  • 打赏
  • 举报
回复
在Web.config里面加入如下设置: <system.webServer> <modules> <remove name="WebDAVModule" /> </modules> <handlers> <remove name="WebDAV" /> </handlers> </system.webServer>
hyde100 2013-06-28
  • 打赏
  • 举报
回复
WebClient类功能非常有限,特别是不能使用它提供身份验证证书。许多站点都不会接受没有身份验证的上传文件。
Ny-6000 2013-06-28
  • 打赏
  • 举报
回复
游戏人间 2013-04-12
  • 打赏
  • 举报
回复
web服务器没有 开放 PUT这个方法。
暖枫无敌 2013-04-11
  • 打赏
  • 举报
回复
使用WebClient上传文件到Web服务器,有时会出现405错误,之前在xp下程序测试通过,但在WIN7下突然出现405错误,这里提供节点必要的设置:

1、Win7下默认WebClient是手动启动,这个需要设置成自动启动,为启动状态;

2、上传文件的文件夹有写入权限,匿名写入;

3、开启WebDav中的规则

这点很重要,与xp设置界面不同。
暖枫无敌 2013-04-11
  • 打赏
  • 举报
回复
对URI的文件进写操作,一般来说都不好用,会报远程服务器返回错误: (405) 不允许的方法 因为现在的网站管理员不会把IIS的权限开得太大.个人感觉这个功能,没有什么用它有几个重载的方法,后面跟的一个string主要是让你来选择是post方式还是put方式进行写 参考
u010229236 2013-04-11
  • 打赏
  • 举报
回复
不懂帮顶,感谢分享
gxingmin 2013-04-11
  • 打赏
  • 举报
回复
405 Method Not Allowed:请求方法(GET、POST、HEAD、DELETE、PUT、TRACE等)对指定的资源不适用。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧