Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês
Esta documentação foi arquivada e não está sendo atualizada.

Classe SessionStateStoreProviderBase

Define os membros de um provedor de estado da sessão para um armazenamento de dados necessários.

System.Object
  System.Configuration.Provider.ProviderBase
    System.Web.SessionState.SessionStateStoreProviderBase

Namespace:  System.Web.SessionState
Assembly:  System.Web (em System.Web.dll)

public abstract class SessionStateStoreProviderBase : ProviderBase

O tipo SessionStateStoreProviderBase expõe os membros a seguir.

  NomeDescrição
Método protegidoSessionStateStoreProviderBaseInitializes a new instance of the SessionStateStoreProviderBase class.
Início

  NomeDescrição
Propriedade públicaDescriptionObtém uma breve descrição amigável adequada para exibição em Ferramentas administrativas ou outras interfaces de usuário (UIs). (Herdado de ProviderBase.)
Propriedade públicaNameObtém o nome amigável usado para referir-se ao provedor durante a configuração. (Herdado de ProviderBase.)
Início

  NomeDescrição
Método públicoCreateNewStoreDataCria um novo SessionStateStoreData o objeto a ser usado para a solicitação atual.
Método públicoCreateUninitializedItemAdiciona um novo item de estado de sessão para o armazenamento de dados.
Método públicoDisposeLibera todos os recursos usados pela SessionStateStoreProviderBase de implementação.
Método públicoEndRequestChamado pelo SessionStateModule o objeto no final da solicitação.
Método públicoEquals(Object) Determina se o Object especificado é igual ao Object atual. (Herdado de Object.)
Método protegidoFinalize Permite que um objeto tente liberar recursos e executar outras operações de limpeza antes que ele seja recuperado pela coleta de lixo. (Herdado de Object.)
Método públicoGetHashCodeServe como uma função hash para um tipo específico. (Herdado de Object.)
Método públicoGetItemRetorna os dados de estado de sessão somente leitura de armazenamento de dados da sessão.
Método públicoGetItemExclusiveRetorna os dados de estado de sessão somente leitura de armazenamento de dados da sessão.
Método públicoGetType Obtém o Type da instância atual. (Herdado de Object.)
Método públicoInitializeInicializa o provedor. (Herdado de ProviderBase.)
Método públicoInitializeRequestChamado pelo SessionStateModule o objeto para cada solicitação de inicialização.
Método protegidoMemberwiseCloneCria uma cópia superficial do Object atual. (Herdado de Object.)
Método públicoReleaseItemExclusiveArmazenar de um bloqueio em um item em que os dados da sessão de versões.
Método públicoRemoveItemExclui dados de armazenamento de dados da sessão do item.
Método públicoResetItemTimeoutAtualiza a data de expiração de um item no armazenamento de dados da sessão.
Método públicoSetAndReleaseItemExclusiveAtualiza as informações de sessão item no armazenamento de dados do estado de sessão com valores da solicitação atual e limpa o bloqueio nos dados.
Método públicoSetItemExpireCallbackDefine uma referência o SessionStateItemExpireCallback Delegar para o Session_OnEnd evento definido no arquivo global. asax.
Método públicoToStringRetorna uma string que representa o objeto atual. (Herdado de Object.)
Início

ASP.Estado de sessão NET lê e grava o provedor de armazenamento de dados de sessão de e para um armazenamento de dados usando um estado de sessão. Um provedor de armazenamento de estado da sessão é uma classe que herda de SessionStateStoreProviderBase classe abstrata e substitui seus membros com implementações específicas para o armazenamento de dados. O provedor de armazenamento de estado da sessão é chamado pelo SessionStateModule a classe durante o processamento de uma página ASP.NET para se comunicar com o armazenamento de dados para o armazenamento e recuperação de variáveis de sessão e informações de sessão relacionados como, por exemplo, o valor de tempo limite.

Dados de sessão dentro de cada página ASP.NET Visual Basic é armazenado separadamente para cada SessionID propriedade. ASP.NET applications não compartilham dados de sessão.

Você pode especificar um personalizado SessionStateStoreProviderBase a implementação de um aplicativo ASP.NET Visual Basic, definindo a mode atributo da sessionState o elemento de configuração para Custom e o customProvider atributo para o nome do provedor personalizado, como mostrado no exemplo para este tópico.

Bloqueio de dados de armazenamento de sessão

Porque ASP.NET são multissegmentados para oferecer suporte a responder às solicitações simultâneas, é possível de solicitações simultâneas podem tentar acessar as mesmas informações de sessão. Considere um cenário onde vários quadros em um conjunto de quadros todos os acessem o mesmo aplicativo. As solicitações separadas para cada quadro no conjunto de quadros podem ser executadas no servidor Web simultaneamente em diferentes segmentos. Se o ASP.NET para cada fonte de quadro acessar variáveis de estado de sessão, e em seguida, você poderia ter vários segmentos acessando o armazenamento de sessão simultaneamente.

Para evitar colisões de dados no armazenamento de sessão e inesperado comportamento de estado de sessão, o SessionStateModule e classes deSessionStateStoreProviderBase incluem a funcionalidade de bloqueio que exclusivamente bloqueia o item do armazenamento de sessão para uma sessão específica para a duração da execução de um aplicativo ASP.NET page. Observe que mesmo se o EnableSessionState atributo está marcado como ReadOnly, outros recursos do ASP.NET páginas no mesmo aplicativo podem ser capazes de gravar para o armazenamento de sessão para que uma solicitação para a sessão somente leitura de dados do armazenamento podem ainda acabar aguardando bloqueado dados a ser liberado.

Um bloqueio é definido em dados de armazenamento de sessão no início da solicitação, na chamada para o GetItemExclusive método. When the request completes, the lock is released during the call to the SetAndReleaseItemExclusive method.

Se a SessionStateModule objeto encontra dados de sessão bloqueados durante a chamada para um o GetItemExclusive ou GetItem método, ele irá solicitar os dados da sessão em intervalos de meio segundo até que o bloqueio será liberado ou a quantidade de tempo que os dados da sessão foi bloqueados excede o valor da ExecutionTimeout propriedade. Se o tempo de execução limite for excedido, o SessionStateModule objeto chamará o ReleaseItemExclusive método para liberar os dados de armazenamento de sessão e solicitar os dados de armazenamento de sessão no momento.

Porque o armazenamento de sessão bloqueados dados podem ter sido liberados por uma chamada para o ReleaseItemExclusive método em um thread separado antes da chamada para o SetAndReleaseItemExclusive método para a resposta atual, uma tentativa foi feita para definir e liberar os dados de armazenamento de estado da sessão que já foi liberados e modificados por outra sessão. Para evitar essa situação, o GetItem e GetItemExclusive métodos retornam um identificador de bloqueio. O identificador de bloqueio deve ser incluído com cada solicitação modifica dados de armazenamento de sessão bloqueados. Armazenamento de sessão dados são modificados apenas se o identificador de bloqueio no armazenamento de dados com o identificador bloqueio fornecido pelo SessionStateModule.

A exclusão de dados de armazenamento de sessão expirada

Quando o Abandon método é chamado para uma determinada sessão, os dados dessa sessão são excluídos do armazenamento de dados usando o RemoveItem método; Caso contrário, os dados permanecerão no armazenamento de dados de sessão para futuras solicitações de servidor para a sessão. Cabe a SessionStateStoreProviderBase a implementação para excluir dados de sessão expirada.

Para obter um exemplo de uma implementação de provedor de armazenamento de estado da sessão, consulte Implementar um Provedor de Armazenamento de Estado da Sessão.

O exemplo de código a seguir mostra o arquivo Web. config para um aplicativo ASP.NET que está configurado para usar um provedor de armazenamento de estado de sessão personalizado.

<configuration>
  <connectionStrings>
    <add name="OdbcSessionServices" connectionString="DSN=SessionState;" />
  </connectionStrings>

  <system.web>
    <sessionState 
      mode="Custom"
      customProvider="OdbcSessionProvider">
      <providers>
        <add name="OdbcSessionProvider"
             type="Samples.AspNet.Session.OdbcSessionStateStore"
             connectionStringName="OdbcSessionServices" />
      </providers>
    </sessionState>
  </system.web>
</configuration>

.NET Framework

Com suporte em: 4, 3.5, 3.0, 2.0

Windows 7, Windows Vista SP1 ou posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core não compatível), Windows Server 2008 R2 (Server Core não compatível com SP1 ou posterior), Windows Server 2003 SP2

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos de sistema do .NET Framework.

Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.
Mostrar: