0

IHttpHandler認証を確実にし、リクエストをログに記録するためのファイルプロキシがあります。開発サーバーとIIS6で正常に動作します。IIS7では、次の2つの問題があります。

  1. Microsoft Office(Word、Excel ...)はOPTIONPROPFIND動詞を使用してWebDAV要求を送信します。ASP.NETはそれらをサポートしていないため、例外をスローします。これらの動詞をIISレベルで無効にして、ASP.NETに到達しないようにする方法はありますか?エラーが返されると思い405 Method Not Allowedます(http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#4xx_Client_Error)。

  2. IIS 7は、チャンクエンコードをオンにします。その場合、Content-Lengthヘッダーは無効であり、明らかにIIS 7はヘッダーを削除します:http://greenbytes.de/tech/webdav/rfc2616.html#rfc.section.4.4。ただし、Content-Typeヘッダーも削除されるため、ファイルはブラウザにテキストとして表示されます。では、IIS 7の削除を停止するContent-Typeにはどうすればよいですか、またはこの1ページのチャンクエンコードをオフにするにはどうすればよいですか?以下は、比較するための応答ヘッダーです。

開発サーバーの応答:

HTTP/1.1 200 OK
Server: ASP.NET Development Server/9.0.0.0
Date: Thu, 23 Dec 2010 17:57:09 GMT
X-AspNet-Version: 2.0.50727
Content-Length: 68096
Content-Disposition: inline; filename=test.doc
Cache-Control: private
Last-Modified: Thu, 23 Dec 2010 09:14:18 GMT
Content-Type: application/msword
Connection: Close

IIS 7の応答:

HTTP/1.1 200 OK
Cache-Control: private
Transfer-Encoding: chunked
Last-Modified: Thu, 23 Dec 2010 09:30:31 GMT
Server: Microsoft-IIS/7.5
Content-Disposition: inline; filename=test.doc
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
Date: Thu, 23 Dec 2010 17:57:59 GMT
4

1 に答える 1

0

チャンクエンコーディングに関する私の質問は不正確でした。開発マシンに小さな変更を1つ加えました。追加しましContent-Lengthた。開発マシンでは、違いはありませんでした。常に機能していました。IIS 7では、Content-Length実際に無効にされたチャンクエンコーディングを追加すると、すべてが期待どおりに機能しました。

WebDAV要求の場合、IIS 7はそれらをASP.NETに送信しないため、問題ありません。ただし、開発サーバーはそうします。それらを処理するためにを追加する提案を見ましたDefaultHttpHandlerが、開発サーバーでは、生のaspxページが提供されることを意味します。

于 2010-12-23T20:54:24.910 に答える