В поставку Spring.NET входит небольшой инструмент, позволяющий просматривать содержимое контейнера на странице web-приложения (для консольных приложений ничего такого нет). Это обычный http handler, описанный в классе ContextMonitor в сборке Spring.Web. При обращении к адресу ContextMonitor.ashx этот хендлер отрисовывает таблицу всех объектов, объявленных в контейнере. Для каждого объекта отображается:
Name— имя в контейнере;Type— тип;Is Abstract— является ли объявление абстрактным;Is Singleton— является ли объект синглтоном (или прототипом);Is Lazy Init— включена ли загрузка по требованию;Scope— границы времени жизни объекта (приложение, сессия или запрос);Page Name— имя страницы (актуально в том случае, когда Spring.NET производит DI в aspx-страницы).
Чтобы ContextMonitor заработал нужно добавить объявление хендлера в Web.config. Для IIS 7:
<system.webServer>
<!-- ... -->
<handlers>
<!-- ... -->
<add name="SpringContextMonitor"
verb="*" path="ContextMonitor.ashx"
type="Spring.Web.Support.ContextMonitor, Spring.Web"/>
<!-- ... -->
</handlers>
</system.webServer>
Для более ранних версий IIS и для development-сервера:
<system.web>
<httpHandlers>
<!-- ... -->
<add verb="*" path="ContextMonitor.ashx"
type="Spring.Web.Support.ContextMonitor, Spring.Web"
validate="false" />
<!-- ... -->
</httpHandlers>
</system.web>
ContextMonitor работает независимо от того, используется ли WebApplicationContext или XmlApplicationContext. При этом в документации Spring.NET нет никакого упоминания об этом классе. Его объявление проскальзывает в примере конфигурации для IIS 7 и больше ни где не встречается:
There is some configuration that is specific to using IIS7, the appropriate code snippit to place in web.config shown below.
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
</modules>
<handlers>
<add name="SpringPageHandler" verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>
<add name="SpringContextMonitor" verb="*" path="ContextMonitor.ashx" type="Spring.Web.Support.ContextMonitor, Spring.Web"/>
</handlers>
</system.webServer>
