Обработчик файлового прокси в IIS 7 - PullRequest
0 голосов
/ 23 декабря 2010

У меня есть файловый прокси IHttpHandler для проверки подлинности и регистрации запросов.Он отлично работает на сервере разработки и IIS 6. В IIS 7 у меня есть две проблемы:

  1. Microsoft Office (Word, Excel ...) отправляет запросы WebDAV с OPTION иPROPFIND глаголов.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, ИЛИ как отключить кодирование по частям для этогоодна страница? Ниже приведены заголовки ответов для сравнения.

Ответ сервера разработки:

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

1 Ответ

0 голосов
/ 23 декабря 2010

Мой вопрос о чанкованном кодировании был неточным. Я сделал одно небольшое изменение на моей машине разработки: я добавил Content-Length. На машине разработки это не имело никакого значения - это всегда работало. В IIS 7 добавление Content-Length фактически отключило chunked-кодировку, и все работало как ожидалось.

Для запросов WebDAV IIS 7 не отправляет их в ASP.NET, поэтому мы в порядке. Сервер разработки, однако. Я увидел предложение добавить DefaultHttpHandler для их обработки, но на сервере разработки это означает, что необработанная страница aspx обслуживается.

...