Я использую минимальную публикацию главной страницу Heather Соломона, у меня есть простая функция с страницей apsx и коды за файл, который делает этотSharepoint Master Pages и состояние сеанса
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.
Update Из предложения на другом форуме это, кажется, является вопрос доверия, я ошибалась, думая, решение развертывается в 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 и нажмите кнопку «Сохранить», она будет «настраивать» страницу. Как только я это сделаю, мой код перестает работать, если я снова сброшу главную страницу на определение сайта, мой код снова заработает!
У меня есть файл soltion, который хочет установить это, чтобы увидеть поведение.
извините забыли упомянуть, что я включил состояние сеанса в центре администратора. Если вы посмотрите на пункт 5, здесь упоминается изменение веб-конфигурации. спасибо за ответ, хотя! – Rob
Я только что проверил, и я могу подтвердить, что информация о сеансе хранится в таблице «ASPStateTempSessions» поставщика общих услуг. – Rob
Хммм ... Я буду продолжать думать и сообщить, если я придумаю что-нибудь еще. Пожалуйста, добавьте ответ, если вы его разработаете, прежде чем кто-либо из нас сделает! –