2010-02-10 3 views
9

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

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

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

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

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

Спасибо!

Steve

ответ

11

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

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

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

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

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

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

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

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

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

+0

Вы правы. Я понял это несколько дней спустя, я обновил форум MSDN, так как вопрос, похоже, вызывал у нас интерес. –

+0

Кажется, что элемент httpModules пуст в SP 2010, кто-нибудь знает почему? – Hinek

+0

Спасибо. Он работал для меня без изменения Web.Config - '' все еще пуст, я просто добавил модуль IIS. – Kobi

1

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

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

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

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

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

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

ли, как показано ниже:

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

модулей является XML-тегов. Я не знаю, почему этот пост не принимает XML-теги ..

Благодаря

Carol

6

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

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