none
Chamadas assíncronas e sessão RRS feed

  • Pergunta

  • Pessoal boa tarde,

    No meu WebService estou utilizando delegate em um método para chamar de forma assíncrona uma rotina. O problema é que nesta rotina que está sendo executada de forma assíncrona a sessão é perdida. Como funciona a sessão nas chamadas assíncronas? É possível de alguma forma recuperar a sessão? Segue um trecho do código:

    Private Delegate Sub ExecucaoAssincrona(ByVal usuario As String)
        Public Function ExecutarRotina(ByVal usuario As String) As String
            Dim del As ExecucaoAssincrona
            Try
                del = New ExecucaoAssincrona(AddressOf Executar)
                del.BeginInvoke(usuario, Nothing, Nothing)
            Catch ex As Exception
            End Try
            Return Nothing
        End Function
    Private Function Executar() As Boolean
            Try
                ' Rotina executada de forma assíncrona em que não consigo mais recuperar as variáveis de sessão
            Catch ex As Exception
                Dim aa As String = ""
            End Try
            Return True
        End Function

    Desde já agradeço a ajuda.

    Obrigado,

    Rafael

    terça-feira, 3 de julho de 2012 19:57

Todas as Respostas

  • Olá Rafael,

    Se não encontrou outra solução, uma que funcionará será você criar declarar uma variável estática do tipo HttpSessionState na classe da página, passar a referência da Session para esta variável em um evento que é disparado ao menos uma vez, como o page_load e utilizá-la no seu método, para recuperar ou setar valores.

    sábado, 11 de agosto de 2012 07:30