【问题标题】:Using the webclient to upload a file 405 error problem使用webclient上传文件405错误问题
【发布时间】:2011-03-02 12:46:16
【问题描述】:
VS C# 2005

我正在使用下面的代码将文件上传到运行 Windows IIS 5.1 的服务器。

我只是在运行 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);
            }
        }
    }

非常感谢您的任何建议,

【问题讨论】:

    标签: c# webclient


    【解决方案1】:

    在 IIS 中,只有注册的文件类型才能接受使用 POST 方法的请求。有关详细信息,请参阅此“How to resolve HTTP 405”文章。

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

    【讨论】:

    • 我已经完成了设置 IIS 的所有工作。但是,“确定”按钮仍然灰显。所以我对此无能为力。但是,我设法通过在 wc.UpLoadFile 中传递“PUT”参数来使其工作。为什么它与“PUT”一起使用?谢谢。
    • HTTP PUT 只是另一种方法,还有 GET、POST、DELETE 等。它只用于文件上传,URI 是文件保存的目标。我想这正是您要寻找的,而不是正确处理 POST...
    • 还要确保您的控制器中有POST 正确路由操作方法
    猜你喜欢
    • 1970-01-01
    • 2017-12-28
    • 2010-12-05
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 2010-12-16
    相关资源
    最近更新 更多