В поставку 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>