4

HTTP PUT を処理して Web サーバーにファイルをアップロードできるようにするために使用したい .ASHX ハンドラがあります。.ASHX ファイルは実際にデータをアップロードし、ファイルを別の場所に貼り付けます。 .

HTTP PUT を処理できるように web.config を設定しましたが、.ASHX ファイル自体の ACL を書き込み可能に設定しない限り、IIS は要求をコードに渡しません。実際にはそれらのファイルに書き込むつもりはありません。

ACL を設定すると問題なく動作しますが、ACL をまったく設定しなくてもファイルを処理できるようにしたいと考えています (IIS に HTTP PUT を .ファイル自体のアクセス許可を確認せずに ASHX ファイルを削除します。

これは、.NET 4.0 を使用して、Win2008 R2 上にあります (実際には、Azure の 2008 R2 上にありますが、同じはずです)。

401 - Unauthorized: Access is denied due to invalid credentials. You do not have permission to view this directory or page using the credentials that you supplied.

4

1 に答える 1

0

ASP.NET で PUT (および DELETE) を機能させるには、いくつかの障害があります。Win2008 R2 (IIS 7.5) について言及されているので、表示されているエラーが WebDAV モジュールまたはハンドラーに言及しているかどうかを確認します。

IIS 7.5 以降、WebDAV は既定で有効になっています。これは、ASP.NET ハンドラーおよびモジュールでの HTTP PUT および DELETE 動詞を妨害します。RESTful サービスを実装している場合は、おそらくこの機能を利用することさえありません。web.config で無効にします。

<system.webServer>
    <modules>
        <remove name="WebDAVModule" />
    </modules>
    <handlers>
        <remove name="WebDAV" />
    </handlers>
</system.webServer>

HTTP Error 405 With ASP.Net MVC and HTTP PUT on IIS 7.5というタイトルのこのフォーラム投稿で、他の解決策がいくつか言及されています。

于 2012-06-26T02:32:10.120 に答える