HttpHandler и проблема блокировки папок IIS7 - PullRequest
1 голос
/ 22 августа 2011

У меня есть простой HttpHandler, который получает файл изображения по указанному пути в URL-адресе вызова. Например, когда вызывается этот URL: http://www.abc.com/images/imageview.ashx?fileName=ok.jpg, он запишет файл с пути: d: \ images \ ok.jpg, используя response.writefile.

Все работает нормально, но папка с именем images в корневом пути веб-сайта (d: \ inetpub \ wwwroot \ images) заблокирована, и после первого вызова я не смог переименовать или удалить папку. Я нигде не использую папку (в корне сайта)!

Я проверил все файлы для второй папки, и они не используются, используется только папка.

Когда я изменил вызывающий URL-адрес на http://www.abc.com/imageview.ashx?fileName=images/ok.jpg, проблема решилась.

Похоже, что IIS7 блокирует виртуальную папку для URL Ashx.

Есть идеи или опыт?

1 Ответ

0 голосов
/ 22 августа 2011

Это потому, что изображение разрешается, скорее всего, относительно папки, в которой находится обработчик. Либо укажите абсолютный путь, например /images/ok.jpg, либо на сервере вызовите ~ / images / ok.jpg для правильного разрешения , Подробнее о ~ здесь http://weblogs.asp.net/fmarguerie/archive/2004/05/05/avoiding-problems-with-relative-and-absolute-urls-in-asp-net.aspx

...