首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

winform WebClient类上传文件到远程服务器 409冲突,该如何解决

2012-02-09 
winform WebClient类上传文件到远程服务器 409冲突winform中使用webClient上传文件到服务器 遇到 远程服务

winform WebClient类上传文件到远程服务器 409冲突
winform中使用webClient上传文件到服务器 遇到 远程服务器返回错误:(409)错误 服务器的IIS下网站权限已经配置为everyone完全控制,扩张服务也开了,谁知道是什么问题,上传到本地的IIS下部署的项目目录下是可以的,以下是上传代码

C# code
 /**/           /// <summary>           /// WebClient上传文件至服务器           /// </summary>           /// <param name="fileNamePath">文件名,全路径格式</param>           /// <param name="uriString">服务器文件夹路径</param>           /// <param name="IsAutoRename">是否自动按照时间重命名</param>           public static void UpLoadFile(string fileNamePath, string uriString, bool IsAutoRename)           {               string fileName = fileNamePath.Substring(fileNamePath.LastIndexOf("\\") + 1);               string NewFileName = fileName;               if (IsAutoRename)               {                   NewFileName = DateTime.Now.ToString("yyMMddhhmmss") + DateTime.Now.Millisecond.ToString() + fileNamePath.Substring(fileNamePath.LastIndexOf("."));               }               string fileNameExt = fileName.Substring(fileName.LastIndexOf(".") + 1);               if (uriString.EndsWith("/") == false) uriString = uriString + "/";               uriString = uriString + NewFileName;                       //创建WebClient实例               WebClient myWebClient = new WebClient();               myWebClient.Credentials = CredentialCache.DefaultCredentials;               // 要上传的文件               FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read);               //FileStream fs = OpenFile();               BinaryReader r = new BinaryReader(fs);               byte[] postArray = r.ReadBytes((int)fs.Length);               Stream postStream = myWebClient.OpenWrite(uriString, "PUT");                              try               {                   //使用UploadFile方法可以用下面的格式                   //myWebClient.UploadFile(uriString,"PUT",fileNamePath);                   if (postStream.CanWrite)                   {                       postStream.Write(postArray, 0, postArray.Length);                       postStream.Close();                       fs.Dispose();                                         }                   else                   {                       postStream.Close();                       fs.Dispose();                                          }               }               catch (Exception err)               {                   postStream.Close();                   fs.Dispose();                                   throw err;               }               finally               {                   postStream.Close();                   fs.Dispose();               }           }


[解决办法]
这个问题我也在查 我这是有的机器没有问题 有一台用put请求上传 就会报409冲突 所以猜测是和那台机器的iis服务器设置有关 找到原因 再告诉你啊 你要是找到了 麻烦通知我一下吧 呵呵
[解决办法]
建议楼主先看看,要上传的服务器的目标文件夹,属性中是否设置为“写入”了。

热点排行