Хорошо.Поскольку к определениям сайтов, которые будут предоставлены в будущем, можно «только прикреплять» функции, вам нужен способ активировать новые функции на существующих сайтах.
Итак, обнаруженное и использованное мной исправление следующее:
Страница по умолчанию для новостной ленты - http://site:80/default.aspx
.Если вы создадите приемник событий и включите его в область «сайт» и развернете его глобально или в этом веб-приложении, он будет работать с базовым семейством сайтов.Каждый личный сайт является семейством сайтов и имеет функцию, но его необходимо активировать в каждом личном семействе сайтов.
Итак, на странице default.aspx вы размещаете следующее, что активирует эту функцию, если она имеетеще не активирован.
<script runat="server" type="text/c#">
protected override void OnLoad(EventArgs e) {
base.OnLoad(e);
String sAccount = (((SPWeb)((SPSite)SPContext.Current.Site).OpenWeb()).CurrentUser.LoginName).Split('\\')[1];
String basePersonalURL = "http://site:80/personal/";
String eventReceiverFeatureId = "12345678-1234-1234-1234-1234567890ab";
using(SPSite site = new SPSite(basePersonalURL + sAccount)) {
site.AllowUnsafeUpdates = true;
using(SPWeb web = site.RootWeb) {
web.AllowUnsafeUpdates = true;
try { site.Features.Add(new Guid(eventReceiverFeatureId)); } catch {}
web.AllowUnsafeUpdates = false;
}
site.AllowUnsafeUpdates = false;
}
}
</script>
Вам также необходимо отредактировать файл web.config, чтобы разрешить запуск встроенного кода для этой страницы.Надеюсь, это поможет.