Apache 2.2をWebサーバーとして使用して、C#のHttpWebRequest
/HttpWebResponse
クラスを使用して、ファイルのアップロードとダウンロードのコードを記述しました。コードでは、request.method = "PUT"
を使用しています。
PUT
メソッドをサポートするようにHTTP構成ファイルを構成します。 PUTメソッドスクリプトを次のように記述します。
<Location "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/output">
<Dav On
<LimitExcept GET HEAD OPTIONS PUT>
Allow from all
</LimitExcept>
</Location>
それは機能していません。プログラム出力でエラーが表示されます:(405)The method not allowed。
<Dav On
ディレクティブは完全ではありません(<
の必要はありません)-これは単なるコピーアンドペーストの問題だと思います。
さらに重要なことは、<Location>
ディレクティブを使用していますが、ファイルシステム/ハードドライブ上の物理パスを提供していることです。
それは間違っています-<Location>
は、ディレクトリではなくURLの照合に使用されます;ディレクトリを一致させるには、<Directory>
を使用する必要があります。 Apacheのマニュアルを参照してください: http://httpd.Apache.org/docs/current/mod/core.html#location
ほとんどの場合、代わりに<Location /output>
を使用する必要があります(または<Directory>
の代わりに<Location>
を使用します)-これは、提供した設定データの量に基づいた推測です。
上記を考慮すると、次のようなものが必要になります(申し訳ありませんが、Apacheボックスに接続してテストすることはできません)。
<Location /output>
Dav On
<LimitExcept GET HEAD OPTIONS PUT>
Allow from all
</LimitExcept>
</Location>