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

私は以下のコードを使用して、Windows IIS 5.1を実行しているサーバーにファイルをアップロードしています。ウェブクライアントを使用してファイルをアップロードする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はファイルが保存されるターゲットです。私はこれがPOSTの適切な処理の代わりに探していたものだと思います。 – Sergey

+0

あなたのコントローラーの**正しいルーティング**の 'POST'の**アクションメソッド**を持っていることを確認してください。 –