Pergunta

Eu tenho um serviço web construído para SharePoint 2007 que eu estou tentando porta para SharePoint 2010. Este serviço web é dependente de estado da sessão para funcionar corretamente, mas, até agora, eu tenho sido habilitar para obter o estado da sessão de trabalho em tudo no SharePoint 2010. Este serviço web é executado como seu próprio aplicativo web sob t ele /_vti_bin diretório virtual. Eu tentei todos os seguintes sem sorte:

  • garantiu a aplicação de serviço "serviço de estado" está em execução.
  • Adicionado o System.Web.SessionState.SessionStateModule http módulo para arquivo web.config do meu aplicativo.
  • Adicionado o System.Web.SessionState.SessionStateModule http módulo para o meu arquivo web.config raiz SharePoint.
  • <pages enableSessionState="true" /> Adicionado para o arquivo web.config do meu aplicativo.
  • <pages enableSessionState="true" /> Adicionado ao meu arquivo web.config raiz.

adicionais informações Ambiente:

  • Visual Studio 2008 - SP1
  • .NET 3.5 - SP1
  • SharePoint 2010 - RC
  • Windows Server 2008 R2
  • serviço de web ASMX (não WCF)

ninguém tinha tido qualquer sorte para conseguir uma aplicação web ou serviço web para o estado da sessão uso em SharePoint 2010 ainda?

Obrigado!

Steve

Foi útil?

Solução

Você já respondeu isso sozinho em outro lugar no interweb. :)

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

Em seguida, você deve ir para a sua aplicação web e adicionar o mesmo módulo de estado de sessão para o IIS7 gasoduto gerenciado.

  1. Open IIS 7 gerente, e encontrar o seu aplicativo web.

  2. Clique duas vezes em "módulos" na seção IIS.

  3. Clique em "Adicionar módulo Managed ..." no painel do lado direito.

  4. Na caixa de diálogo Adicionar Managed Módulo, digite "SessionState" ou algo parecido para o nome, e escolher o item seguinte na lista suspensa:

    System.Web.SessionState.SessionStateModule, System.Web, versão = 2.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a

Depois disso, o estado da sessão deve ser habilitado para a sua aplicação web service / web!

Outras dicas

Você pode precisar ativar o serviço de estado de sessão. Use o PowerShell cmdlet Enable-SPSessionStateService. Isto irá criar um banco de dados estado da sessão e iniciar o serviço no SharePoint 2010.

informações

Referência: http://technet.microsoft.com/en-us/library/ee890113.aspx

A solução de Joshua ajudou a me aponte na direção certa, mas eu tive que fazer algumas variações para o meu cenário - um Web Site ASP.NET 3.5 implantado para o _layouts pasta.

Aqui estão os passos que funcionou para mim:

  1. mudou a tag <pages> no web.config para o Web Site para <pages enableSessionState="true" />

  2. Adicionado o System.Web.SessionState.SessionStateModule módulo no nível site Sharepoint (não todo o IIS nível - que vai quebrar a Administração Central, tentei :() como por @ solução de Josué. Se você estiver implantando um aplicativo da web em vez de um web site, você vai querer adicioná-lo ao seu nível de aplicativo web.

Adicionando o SessionState HTTPModule abaixo para o web.config não parecem ter um efeito para mim, provavelmente porque eu estava andando em web.config do SharePoint como o meu projeto era um Web site e não um aplicativo da Web. Não muito clara sobre esta questão.

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

Do como abaixo:

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

módulos é uma marca XML. Eu não sei por que, este post não está tomando tags XML ..

Graças

Carol

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top