Question

J'ai un service Web intégré pour SharePoint 2007 que je suis en train de port à SharePoint 2010. Ce service Web dépend de l'état de session pour fonctionner correctement, mais jusqu'à présent, je suis permettre d'obtenir l'état de session pour travailler à tous dans SharePoint 2010. Ce service Web fonctionne comme sa propre application Web sous t il /_vti_bin répertoire virtuel. J'ai essayé tous les éléments suivants sans chance:

  • Veillé l'application de service "fonction publique" est en cours d'exécution.
  • Ajout du module http System.Web.SessionState.SessionStateModule au fichier web.config de mon application.
  • Ajout du module http System.Web.SessionState.SessionStateModule à ma racine SharePoint fichier web.config.
  • Ajout <pages enableSessionState="true" /> au fichier web.config de mon application.
  • Ajout <pages enableSessionState="true" /> à mon fichier web.config racine.

Infos environnement supplémentaires:

  • Visual Studio 2008 - SP1
  • .NET 3.5 - SP1
  • SharePoint 2010 - RC
  • Windows Server 2008 R2
  • ASMX service web (non WCF)

Si quelqu'un avait eu de chance d'obtenir une application web ou service Web à utiliser l'état de session encore dans SharePoint 2010?

Merci!

Steve

Était-ce utile?

La solution

Vous avez déjà répondu vous-même quelque part ailleurs ce sur l'interweb. :)

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

Ensuite, vous devez aller dans votre application web et ajoutez le même module d'état de session au pipeline géré IIS7.

  1. Ouvrez le Gestionnaire IIS 7, et trouver votre application web.

  2. Double cliquez sur "Modules" dans la section IIS.

  3. Cliquez sur "Ajouter un module Managed ..." sur le volet de droite.

  4. Dans la boîte de dialogue Ajouter un module géré, entrez "SessionState" ou quelque chose comme ça pour le nom, et choisissez l'article suivant dans la liste déroulante:

      

    System.Web.SessionState.SessionStateModule, System.Web, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a

Après cela, l'état de session doit être activé pour votre application web / web service!

Autres conseils

Vous devrez peut-être activer le service d'état de session. Utilisez l'applet de commande PowerShell Enable-SPSessionStateService. Cela dans SharePoint 2010 créera une base de données d'état de session et démarrer le service.

Informations de référence: http://technet.microsoft.com/en-us/library/ee890113.aspx

La solution de Joshua m'a aidé à pointer dans la bonne direction, mais je devais faire quelques variations pour mon scénario - un site Web ASP.NET 3.5 déployé dans le dossier _layouts.

Voici les étapes qui ont travaillé pour moi:

  1. a changé la balise <pages> dans le web.config pour le site Web à <pages enableSessionState="true" />

  2. Ajout de la System.Web.SessionState.SessionStateModule Module au niveau du site Sharepoint (pas l'ensemble du niveau IIS - qui ne marchera pas l'administration centrale, j'ai essayé :() selon @ solution de Joshua. Si vous déployez une application Web au lieu d'un site Web, vous aurez envie de l'ajouter à votre niveau d'application Web.

Ajout du SessionState HttpModule ci-dessous à l'web.config ne semble pas avoir un effet pour moi, probablement parce que je montais sur le web.config de Sharepoint que mon projet était un site Web et non une application Web. Pas trop clair sur cette question.

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

Faites comme ci-dessous:

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

modules est une balise XML. Je ne sais pas pourquoi, ce poste ne prend pas les balises xml ..

Merci

Carol

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top