Включение состояния сеанса в SharePoint 2010? - PullRequest
9 голосов
/ 10 февраля 2010

У меня есть веб-служба, созданная для SharePoint 2007, которую я пытаюсь перенести на SharePoint 2010. Этот веб-сервис зависит от состояния сеанса, чтобы функционировать должным образом, но до сих пор у меня была возможность заставить работать состояние сеанса вообще в SharePoint 2010. Этот веб-сервис работает как собственное веб-приложение под он /_vti_bin виртуальный каталог. Я попытался все следующие безуспешно:

  • Убедитесь, что приложение-служба "Служба состояний" запущено.
  • Добавлен модуль System.Web.SessionState.SessionStateModule http в файл web.config моего приложения.
  • Добавлен модуль System.Web.SessionState.SessionStateModule http в мой корневой файл web.config SharePoint.
  • Добавлен <pages enableSessionState="true" /> в файл web.config моего приложения.
  • Добавлен <pages enableSessionState="true" /> в мой корневой файл web.config.

Дополнительная информация об окружающей среде:

  • Visual Studio 2008 - SP1
  • .NET 3.5 - SP1
  • SharePoint 2010 - RC
  • Windows Server 2008 R2
  • Веб-сервис ASMX (не WCF)

Кто-нибудь еще имел возможность получить веб-приложение или для использования состояния сеанса в SharePoint 2010?

Спасибо!

Steve

Ответы [ 5 ]

11 голосов
/ 08 марта 2010

Вы уже ответили на это сами где-то еще в сети. :)

<httpModules> 
  <add name="Session" type="System.Web.SessionState.SessionStateModule" /> 
</httpModules>

ТО, вы должны зайти в свое веб-приложение и добавить тот же модуль состояния сеанса в управляемый конвейер IIS7.

  1. Откройте диспетчер IIS 7 и найдите свое веб-приложение.

  2. Дважды щелкните «Модули» в разделе IIS.

  3. Нажмите «Добавить управляемый модуль ...» на правой панели.

  4. В диалоговом окне Добавить управляемый модуль введите "SessionState" или что-то подобное для имени и выберите следующий элемент из выпадающего списка:

    System.Web.SessionState.SessionStateModule, System.Web, версия = 2.0.0.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a

После этого для вашего веб-приложения / веб-службы должно быть включено состояние сеанса!

6 голосов
/ 09 сентября 2010

Возможно, вам потребуется включить Службу состояния сеанса. Используйте командлет PowerShell Enable-SPSessionStateService. Это создаст базу данных состояния сеанса и запустит службу в SharePoint 2010.

Справочная информация: http://technet.microsoft.com/en-us/library/ee890113.aspx

2 голосов
/ 25 февраля 2011

Лучшая ссылка, которую я видел на это здесь: http://blogs.msdn.com/b/markarend/archive/2010/05/27/using-session-state-in-sharepoint-2010.aspx

1 голос
/ 21 апреля 2010

Решение Джошуа помогло направить меня в правильном направлении, но мне пришлось внести некоторые изменения в мой сценарий - веб-сайт ASP.NET 3.5, развернутый в папке _layouts.

Вот шаги, которые работали для меня:

  1. изменил тег <pages> в web.config для веб-сайта на <pages enableSessionState="true" />

  2. Добавлен модуль System.Web.SessionState.SessionStateModule на уровне веб-сайта Sharepoint (не весь уровень IIS - это нарушит работу центра администрирования, я пытался :() согласно @ Решение Джошуа. Если вы развертываете веб-приложение вместо веб-сайта, вам нужно добавить его на уровне веб-приложения.

Добавление приведенного ниже HTTP-модуля SessionState в файл web.config, похоже, не дало мне никакого эффекта, возможно, потому, что я катался на web.config Sharepoint, поскольку мой проект был веб-сайтом, а не веб-приложением. Не слишком ясно по этому вопросу.

<httpModules> 
    <add name = "Session" type = "System.Web.SessionState.SessionStateModule" /> 
</httpModules>
0 голосов
/ 24 июня 2010

Сделайте как ниже:

 <modules runAllManagedModulesForAllrequests>
   <add name="Session" type="System.Web.SessionState.SessionStateModule" />
 </modules>

modules - это тег XML. Я не знаю почему, этот пост не принимает XML-теги ..

Спасибо

Carol

...