Это на самом деле возможно, но это не относится к файлу Global.asax.
Многие из примеров Microsoft демонстрируют код подключения через Global.asax, но это не лучший метод, когда речь идет о SharePoint. В идеале ваш код должен быть упакован как компонент и развернут через WSP (как вы уже знаете).
Ключ заключается в реализации рассматриваемого кода в виде HttpModule (то есть типа, реализующего интерфейс IHttpModule) и его подключении к конвейеру ASP.NET, обслуживающему ваше приложение SharePoint. Грубо говоря, это шаги:
- Создайте класс, который реализует интерфейс IHttpModule.
- Реализуйте метод Init в вашем HttpModule; это вызывается при настройке HttpApplication (в данном случае SPHttpApplication), и это дает вам возможность выполнять обработку, делегировать события проводного соединения для других событий конвейера и т. д.
- Создайте SPFeatureReceiver, который будет добавлять и удалять ваш HttpModule из целевых файлов web.config при активации и деактивации соответственно. Это выполняется с использованием типа SPWebConfigModification для обновления узла в целевых файлах web.config.
- Упакуйте все как компонент и разверните через WSP.
Подробнее о разработке HttpModule см. http://msdn.microsoft.com/en-us/library/ms227673.aspx. Дополнительные сведения о типе SPWebConfigModification см. http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spwebconfigmodification.aspx.
.
Результат: класс, который может обрабатывать запуск приложения и может быть развернут с помощью Feature. Ручной взлом файла не требуется.
Я успешно использовал это в ряде сценариев - совсем недавно с пользовательским поставщиком кэширования (IVaryByCustomHandler), который должен был зарегистрироваться для обратных вызовов с помощью SPHttpApplication при его запуске.
Хотя ваш вопрос немного старше, надеюсь, это поможет!