Lightweight Directory Access Protocol clientes que usar a classe DirectorySearcher para consultar o serviço de diretório do Active pode receber um conjunto de resultados incompletos

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 833789
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sintomas
Um Microsoft .NET Framework 1.1 Lightweight Directory Access protocolo (LDAP) cliente que usa a classe .NET DirectorySearcher para consultar o serviço de diretório do Active pode receber um conjunto de resultados incompletos. Esse problema é mais provável de ocorrer se a conexão de rede entre o cliente e o servidor estiver lenta ou se o servidor Active Directory está ocupado. O cliente não recebe um erro que essa condição do servidor de relatórios. Portanto, o cliente não sabe se ele recebeu um conjunto de resultados incompletos.
Resolução

Informações de atualização de software

Uma atualização de software com suporte agora está disponível da Microsoft, mas destina-se somente a corrigir o problema descrito neste artigo. Aplique-o somente nos sistemas que apresentarem esse problema específico. Esta atualização de software pode receber testes adicionais. Portanto, se você não tiver sido gravemente afetado por esse problema, recomendamos que você aguarde o próximo service pack do .NET Framework 1.1 que contém essa atualização de software.

Para resolver esse problema imediatamente, contate o Atendimento Microsoft para obter a atualização de software. Para obter uma lista completa dos números de telefone do Atendimento Microsoft do e informações sobre os custos de suporte, visite o seguinte site: Observação Em alguns casos, as taxas cobradas pelas ligações para chamadas de suporte podem ser canceladas se um profissional de suporte da Microsoft determinar que uma atualização específica resolverá o problema. Os custos normais de suporte serão aplicados a questões e problemas que não se qualificam à atualização específica em questão de suporte adicionais.

Pré-requisitos

Não pré-requisitos são necessários.

Requisitos de reinicialização

Não é necessário reiniciar seu computador após aplicar essa atualização de software.

Informações sobre substituição de atualização de software

Esta atualização de software não substitui outras atualizações de software.

Informações sobre o arquivo

A versão em inglês desta atualização de software apresenta os atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos são listadas na acordo hora universal coordenada (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para encontrar a diferença entre o UTC e a hora local, use a guia fuso horário na ferramenta Data e hora no painel de controle.
   Date         Time   Version       Size    File name   ----------------------------------------------------------------------   17-Dec-2003  20:18  1.1.4322.982  90,112  System.directoryservices.dll
Situação
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".
Mais Informações
Observação Esta atualização de software é instalada em um cliente Windows e não no controlador de domínio Microsoft Windows Server 2003.

Executar um LDAP pesquisa paginada é semelhante ao solicitar um indicador para a sua consulta ao servidor. Um conjunto de resultados grande é separado em "blocos" de um tamanho que especifica o cliente LDAP. Cada bloco é enviado para o cliente juntamente com um cookie (ou indicador). O cookie determina onde o próximo conjunto de resultados pode ser recuperado pelo servidor. Quando o conjunto de resultados completo foi retornado, o cliente emite um cookie com nenhum valor.

Quando o servidor Active Directory é executado baixo em recursos, ou quando o servidor é enviou uma consulta que não está corretamente indexada, ou ambas, o tempo que leva para atender a consulta pode se estender além dos limites definidos pela diretiva de LDAP para a floresta do Active Directory. Nesse caso, o servidor retorna um conjunto de resultado vazio mas, no caso de uma pesquisa paginável, o servidor ainda retorna um cookie com um indicador de valor. O cliente pode interpretar isso significa que há mais dados, mas o servidor não é possível enviá-lo no momento.

A funcionalidade do espaço para nome System.DirectoryServices é inserida em camadas. A implementação da Microsoft de LDAP padrão contido na biblioteca Wldap32.dll é normalmente conhecida como a API LDAP. Active Directory Service Interfaces (ADSI) é uma camada de abstração de COM (Component Object Model) que fica no topo da API LDAP. Por sua vez, o namespace System.DirectoryServices do .NET é um assembly gerenciado que fica na parte superior das bibliotecas do ADSI nativas.

O seguinte artigo Base de dados de Conhecimento Microsoft descreve como recuperar informações do serviço de diretório do Active Directory na situação descrita neste artigo.
325189Descrição dos resultados truncados ao chamar a função IDirectorySearch::GetNextRow
No entanto, System.DirectoryServices do .NET não verifica o valor ERROR_MORE_DATA chamando a função ADsGetLastError . Em vez disso, o aplicativo .NET deve executar essa verificação. A atualização de software neste artigo fornece uma maneira opcional para que o System.DirectoryServices do .NET executar essa verificação em nome do cliente LDAP .NET usando o arquivo de configuração, o arquivo Machine.config, o arquivo Application.config ou o arquivo Web.config.

O novo código nesta atualização de software procura um valor waitForPagedSearchData em um arquivo de configuração. Se o valor waitForPagedSearchData não existe ou é false , o cliente .NET LDAP não tenta continuar a pesquisa paginada por reemitindo a solicitação. Em vez disso, o cliente LDAP lança um interopt COM exceção que é semelhante à seguinte exceção:

System.Runtime.InteropServices.COMException (0x800700EA): Mais dados estão disponíveis no System.DirectoryServices.ResultsEnumerator.MoveNext()

Se o valor waitForPagedSearchData for true , o cliente continua a emitir pesquisas LDAP pagináveis e retornar os indicadores para o servidor até que o conjunto de resultados inteiro foi retornado ou até que ocorra um resultado de erro que não seja ERROR_MORE_DATA .

Instruções para criar um arquivo de configuração

Para criar um arquivo de configuração para um aplicativo do Windows Forms, crie um <application name> arquivo de config no mesmo diretório onde o aplicativo é localizado. Se seu aplicativo é chamado App.exe, nomeie o arquivo apl.exe.config. Adicione o seguinte código como o conteúdo deste arquivo .config:
<?xml version="1.0" encoding="UTF-8" ?><configuration><configSections><section name="system.directoryservices" type="System.DirectoryServices.SearchWaitHandler, System.DirectoryServices, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /></configSections><system.directoryservices><DirectorySearcher waitForPagedSearchData="true" /></system.directoryservices></configuration>
Observação Verifique se a versão do assembly coincide com a versão que você está trabalhando.

Para criar um arquivo de configuração de um aplicativo ASP.NET, altere o arquivo Machine.config no diretório onde o aplicativo está localizado. Adicione o seguinte código na seção <configsections> deste arquivo .config:
<section name="system.directoryservices" type="System.DirectoryServices.SearchWaitHandler, System.DirectoryServices, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /></configSections><system.directoryservices><DirectorySearcher waitForPagedSearchData="true" /></system.directoryservices>
Observação Certifique-se de que a versão do assembly coincide com a versão que você está trabalhando.
Referências
Para obter informações adicionais sobre arquivos de configuração do aplicativo, visite o seguinte site da Web Microsoft Developer Network (MSDN):Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684Descrição da terminologia padrão que é usada para descrever as atualizações de software

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 833789 - Última Revisão: 12/08/2015 05:46:37 - Revisão: 4.2

Microsoft .NET Framework 1.1

  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbbug kbfix kbqfe kbnetframe110presp1fix KB833789 KbMtpt
Comentários