Я использую минимальную главную страницу публикации Хизер Соломон, у меня есть простая функция со страницей APSX и файлом с кодом, который делает это
public class SSInformPage : Page
{
protected Literal Literal1;
protected override void OnLoad(EventArgs e)
{
//base.OnLoad(e);
try
{
HttpContext.Current.Session["Name"] = "Mr Ben";
Literal1.Text = string.Format("{0} {1}", HttpContext.Current.Session["Name"].ToString(), Session.SessionID);
}
catch (Exception ex)
{
Literal1.Text = string.Format(ex.Message.ToString());
}
}
}
Когда эта страница загружается в браузере, я получаю следующую ошибку
Ссылка на объект не установлена для экземпляра объекта.
И все же, если я переключусь на главную страницу (например, «Черная вертикаль»), код работает! Я получаю ожидаемый результат «Mr Ben {session ID}»
Я даже создал новую пустую главную страницу и скопировал в нее все содержимое главной страницы Black Vertical. Я устанавливаю сайт на эту новую главную страницу, загружаю страницу, ожидая, что все будет работать, и получаю ошибку «Ссылка на объект…». Как это работает? Это точно такая же главная страница, но код работает, только если это версия OOTB.
Я включил состояние сеанса в центральном администраторе, файл web.config и сборка развернуты в GAC.
Обновление
Судя по предложению на другом форуме, это похоже на проблему доверия, я ошибся, полагая, что решение развертывается в GAC, оно фактически развертывается в папке Bin. Я попытался сбросить это, но не могу заставить WSPBuilder развернуть решение в GAC, хотя мне удалось заставить его прекратить развертывание в папке bin веб-приложения.
Кто-нибудь знает, как получить решение для развертывания в папке GAC? это моя команда stsadm
stsadm -o deploysolution -name Test.SessionState.Solution.wsp -immediate -url http://example -allowGacDeployment -allowCasPolicies -force
Udpate 2
Нет, это не проблема доверия, я заново создал свое решение и обеспечил его развертывание в GAC. Если я открою главную страницу OOTB в конструкторе sharepoint и нажму кнопку «Сохранить», она «настроит» страницу. Как только я это делаю, мой код перестает работать, и если я возвращаю главную страницу обратно к определению сайта, мой код снова начинает работать!
У меня есть файл решения, если кто-нибудь захочет установить это, чтобы увидеть поведение.