2011-03-02 45 views
1
VS C# 2005 

我使用下面的代码将文件上传到运行Windows IIS 5.1的服务器。使用webclient上传文件405错误问题

我只是在运行Windows XP的本地服务器上进行测试。但是,我不断收到以下错误消息:

The remote server returned an error (405) Method Not Allowed 

我确定这是一个IIS问题,也许是有权限的东西。但是,我配置了IIS以允许读取,写入和目录浏览。

我想上传的config.xml文件与可执行文件位于同一目录中。

private void upload_config_to_server() 
    { 
     Uri url = new Uri("http://10.10.10.3/softphone/config.xml"); 

     WebClient wc = new WebClient(); 
     if (!wc.IsBusy) 
     {     
      try 
      { 
       wc.UploadFile(url, null, "config.xml"); 
      } 
      catch (WebException webex) 
      { 
       Console.WriteLine("Web Exception {0}", webex.Message); 
      } 
      catch (Exception ex) 
      { 
       Console.WriteLine("Exception {0}", ex.Message); 
      } 
     } 
    } 

非常感谢您的任何建议,

回答

2

只有注册的文件类型可以接受在IIS中的POST方法请求。有关更多详细信息,请参阅本文“How to resolve HTTP 405”文章。

另外,为了发布文件,您需要确保服务器端脚本正确处理此上传,如果您希望它出现在您上传的文件夹中。您的URL(wc.UploadFile中的第一个参数)应该是处理上载的服务器端脚本。

+0

我已经做了一切设置IIS。但是,OK按钮仍然呈灰色。所以我无法做任何事情。但是,我设法通过在wc.UpLoadFile中传递“PUT”参数来实现它。它为什么与“PUT”一起工作?谢谢。 – ant2009

+0

HTTP PUT只是另一种方法,包括GET,POST,DELETE等。它仅用于文件上传,URI是保存文件的目标。我想这正是你正在寻找的东西,而不是正确的处理POSTs ... – Sergey

+0

此外,请确保你有一个**动作方法**的** POST与**正确的路由**在你的控制器。 –