Artigo: 833789 - Última revisão: segunda-feira, 21 de Maio de 2007 - Revisão: 4.2

Lightweight Directory de clientes de protocolo do acesso que utilizar a classe DirectorySearcher para consultar o serviço de directório do Active Directory poderá receber um conjunto de resultados incompleta

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sintomas

Um Microsoft .NET Framework 1.1 LDAP Directory Access Protocol (LDAP) cliente que utiliza a classe .NET DirectorySearcher para consultar o serviço de directório do Active Directory poderá receber um conjunto de resultados incompleta. Este problema é mais provável que ocorrer se a ligação de rede entre o cliente e o servidor estiver lenta ou se o servidor do Active Directory está ocupado. O cliente não receber um erro que indica esta condição a partir do servidor. Por conseguinte, o cliente não saberá que recebeu um conjunto de resultados incompleta.

Resolução

Informações de actualização de software

Uma actualização de software suportado tem já disponível da Microsoft, mas destina-se apenas a corrigir o problema descrito neste artigo. Aplique-a apenas em sistemas que tenham este problema específico. Esta actualização de software poderá submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, recomendamos que aguarde pelo próximo service pack do .NET Framework 1.1 que contenha esta actualização de software.

Para resolver este problema imediatamente, contacte o suporte técnico da Microsoft para obter a actualização de software. Para obter uma lista completa de números de telefone do suporte técnico da Microsoft e informações sobre os custos de suporte, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/default.aspx?scid=fh;[LN];CNTACTMS (http://support.microsoft.com/default.aspx?scid=fh;%5Bln%5D;cntactms)
Nota Em casos especiais, os custos normalmente inerentes às chamadas de suporte poderão ser anulados, se um técnico de suporte da Microsoft determinar que uma actualização específica resolverá o problema. Os custos normais do suporte serão aplicados a problemas adicionais e questões de suporte que não se enquadrem na atualização específica em questão.

Pré-requisitos

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

Requisito de reinício

Não é necessário reiniciar o computador depois de aplicar esta actualização de software.

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

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

Informações do ficheiro

A versão inglesa desta actualização de software tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas no formato de universal hora (UTC) coordenada Coordinated. Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador fuso horário na ferramenta Data e hora no painel de controlo.
   Date         Time   Version       Size    File name
   ----------------------------------------------------------------------
   17-Dec-2003  20:18  1.1.4322.982  90,112  System.directoryservices.dll

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".

Mais Informação

Nota Esta actualização de software é instalada num cliente Windows e não no controlador de domínio de Microsoft Windows Server 2003.

Procura paginada efectuar um LDAP é semelhante a solicitar um marcador para a consulta partir do servidor. Um conjunto de resultados de grandes dimensões está dividido em "blocos" de um tamanho que especifica o cliente LDAP. Cada secção é enviada ao cliente juntamente com um cookie (ou marcadores). O cookie determina onde o conjunto de resultados seguinte pode ser obtido pelo servidor. Quando foi devolvido o conjunto de resultados completo, o cliente emite um cookie com nenhum valor.

Quando esgotar o servidor do Active Directory de recursos ou quando o servidor é enviado uma consulta que não seja correctamente indexada, ou ambos, o tempo que demora a satisfazer a consulta pode expandir para além dos limites definidos pela política LDAP para a floresta do Active Directory. Neste caso, o servidor devolve um conjunto de resultado vazio mas, no caso de uma procura paginada, o servidor devolve ainda um cookie com um marcador de valor. O cliente pode interpretar Isto significa que existe mais dados mas o servidor não é possível enviar neste momento.

A funcionalidade do espaço de nomes System.DirectoryServices está incorporada em camadas. Implementação Microsoft do LDAP padrão contida na biblioteca Wldap32.dll é normalmente referida como a API de LDAP. Interfaces de serviço do Active Directory (ADSI) é uma camada de abstracção de COM (Component Object Model) da Microsoft que se encontra na parte superior da API do LDAP. Por sua vez, o espaço de nomes System.DirectoryServices .NET é uma assemblagem gerida que se encontra na parte superior das bibliotecas de ADSI nativas.

O seguinte artigo da base de dados de conhecimento da Microsoft descreve como obter informações adicionais a partir do serviço de directório do Active Directory na situação descrita neste artigo.
325189  (http://support.microsoft.com/kb/325189/ ) Descrição dos resultados truncados quando chamar a função de IDirectorySearch::GetNextRow
No entanto, System.DirectoryServices .NET não verifica o valor ERROR_MORE_DATA chamando a função ADsGetLastError . Em vez disso, a aplicação .NET deve executar esta verificação. A actualização de software neste artigo fornece uma forma opcional para o .NET System.DirectoryServices efectuar esta verificação no nome do cliente LDAP .NET utilizando o ficheiro de configuração, o ficheiro Machine.config, o ficheiro Application.config ou o ficheiro Web.config.

O novo código nesta actualização de software procura um valor de waitForPagedSearchData num ficheiro de configuração. Se o valor waitForPagedSearchData não existe ou é falsa , o cliente LDAP .NET não tenta continuar a procura paginada por republicação o pedido. Em vez disso, o cliente de LDAP lança um interopt COM excepção que é semelhante à seguinte excepção:

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

Se o valor waitForPagedSearchData for true , o cliente continua a emitir pesquisas paginadas do LDAP e devolver os marcadores ao servidor até que o conjunto de resultados completo foi devolvido ou até que ocorra um resultado de erro que não seja ERROR_MORE_DATA .

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

Para criar um ficheiro de configuração para uma aplicação de formulários do Windows, crie um <application name> ficheiro do .config no mesmo directório onde se encontra a aplicação. Se a aplicação é chamada App.exe, nome do ficheiro App.exe.config. Adicione o seguinte código como o conteúdo deste ficheiro. 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>
Nota Certifique-se a versão da assemblagem corresponde a versão que está a trabalhar.

Para criar um ficheiro de configuração para uma aplicação do ASP.NET, altere o ficheiro Machine.config no directório onde se encontra a aplicação. Adicione o código seguinte na secção <configsections> deste ficheiro. 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>
Nota Certifique-se de que a versão da assemblagem corresponde à versão que está a trabalhar.

Referências

Para obter informações adicionais sobre ficheiros de configuração da aplicação, visite o seguinte Web site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms229689(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/ms229689(vs.71).aspx)
Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
824684  (http://support.microsoft.com/kb/824684/ ) Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft

A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 1.1
Palavras-chave: 
kbmt kbhotfixserver kbqfe kbbug kbfix kbqfe kbnetframe110presp1fix KB833789 KbMtpt
Tradução automáticaTradução automática
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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 833789  (http://support.microsoft.com/kb/833789/en-us/ )