2010-07-26 5 views
1

У меня есть приложение, которое зависит от общего HttpHandler, который я создал, и он отлично работает. Проблема в том, что в IIS есть много других приложений под одной и той же папкой, и этим другим приложениям не нужно использовать и не знать (не должен знать) об этом обработчике. Однако Web.Config, в котором я зарегистрирую его, попадает во все папки на одном уровне и всех подпапках, и этого я и хочу избежать.Могу ли я ограничить область ASP.NET HttpHandler?

Изменение структуры приложений внутри IIS не является возможным, к сожалению.

Я думал об использовании тега < location на Web.config, но я под впечатлением, что он меняет права на доступ, а не на видимость.

Любые предложения о том, как это можно преодолеть?

+0

Теперь я понимаю, что этого недостаточно. Обработчик рассматривался как способ обслуживания изображений gif из базы данных брандмауэров через веб-службу на веб-сайт DMZ. Он возвратил объект Image, который можно было использовать «на лету» на странице. – jehuty

ответ

0

HttpHandlers настроены на уровне приложения. Влияют ли эти вложенные папки на действительно отдельные приложения? Если нет, вы вряд ли сможете это сделать ... Предложение Аристоса может быть жизнеспособным. Если они действительно являются приложениями, вам просто нужно специально удалить обработчик из этих приложений.

http://msdn.microsoft.com/en-us/library/e0dzxdza%28VS.71%29.aspx

+0

Да, к сожалению, они действительно разные, несвязанные и ужасно из контекста приложений. Но это действительно нецелесообразно. – jehuty

0

Я думаю, вам нужно посмотреть на Наследование конфигурации и пути вокруг него для дочерних приложений. Может быть, начать здесь:

http://msdn.microsoft.com/en-us/library/ms178685.aspx

http://www.aspdotnetfaq.com/Faq/how-to-disable-web-config-inheritance-for-child-applications-in-subfolders-in-asp-net.aspx

+0

Вы знаете, будет ли HttpHandler работать в файле Web.Config на любом иерархическом уровне? – jehuty

1

Вы можете применить пользовательский фильтр к вашему HttpHandler, проверив файл, который собирается пройти мимо вашего фильтра, и оставить только один вам нужно.

Вы можете получить имя файла, который собирается передать ваши HttpHandler по

HttpContext.Current.Request.Path 

В имени файла вы можете проверить на что-либо, для каталога, для файла, для того, что когда-либо.

Надеюсь, что эта помощь.

Смежные вопросы