CORRECÇÃO: "acesso negado" mensagem de erro ao tentar acessar o serviço de indexação do ASP.NET com representação ativada

Traduções deste artigo Traduções deste artigo
ID do artigo: 323293 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Quando você pesquisa contra Index Server por meio de uma página ASP.NET, você receberá a seguinte mensagem de erro:
O acesso foi negado. Descrição: Ocorreu uma exceção não tratada durante a execução da atual solicitação da web. Examine o rastreamento da pilha para obter mais informações sobre o erro e onde foi originado no código.

Detalhes da exceção: System.Data.OleDb.OleDbException: acesso negado.
Esse comportamento é observado somente se você ativar a representação para o aplicativo ASP.NET e se o contexto de segurança sob a qual o processo do operador ASP.NET (Aspnet_wp.exe) é executado é a conta ASPNET.

Resolução

Informações sobre o service pack

Para resolver esse problema, obtenha o service pack mais recente para o Microsoft Windows 2000. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
260910Como obter o service pack mais recente do Windows 2000

Como Contornar

Use um dos seguintes métodos para contornar este problema:
  • Desative a representação para todo o aplicativo ASP.NET. Esta é a configuração padrão.
  • Desative a representação somente para a página .aspx específico que faz a pesquisa do Index Server. Para fazer isso, adicione uma marca <location> para o arquivo Web.config da seguinte maneira:
    <location path="filename.aspx">
    <system.web>
       <identity impersonate="false" />
    </system.web>
    </location>
    					
Se essas soluções alternativas não forem aceitáveis para você, você pode alterar o contexto de segurança em que o processo do operador do ASP.NET é executado para a conta do sistema. No entanto, a Microsoft não recomenda que você definir o contexto de segurança do processo de trabalho do ASP.NET como a conta do sistema porque a conta SYSTEM é uma conta de administrador altamente privilegiada no computador do servidor Web. Use esta solução alternativa somente se nenhuma das outras soluções forem aceitáveis para você.

Para alterar o contexto de segurança sob a qual o processo de operador ASP.NET é executado, defina o atributo userName para SYSTEM e, em seguida, defina o atributo senha como autogenerate no <processmodel> seção do arquivo Machine.config. O arquivo Machine.config está localizado na pasta \Microsoft.Net\Framework\v1.0.3705\Config C:\ Windows Directory.

Situação

A Microsoft confirmou que esse é um problema nos produtos da Microsoft listados na seção "Aplica-se a".Esse bug foi corrigido no ASP.NET (incluído com o .NET Framework) 1.1. A Microsoft confirmou que este é um problema no Microsoft Windows 2000. Esse problema foi corrigido primeiro no Microsoft Windows 2000 Service Pack 4.

Mais Informações

Passos para reproduzir o problema

  1. Inicie o Microsoft Visual Studio NET..
  2. Crie um aplicativo ASP.NET.
  3. Adicione o seguinte código em HTML de uma página .aspx:
    <%@ Page language="c#" %>
    <%
                System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection("provider=msidxs;");
    
                conn.Open();
    
                string Sql = "Select DocTitle, vpath, characterization, rank from Scope(' DEEP TRAVERSAL OF \"C:\\\" ')  where FREETEXT(' \"ticket\" ') order by rank desc";
    
                System.Data.OleDb.OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter(Sql, conn);
    
                System.Data.DataSet ds = new System.Data.DataSet();
    
                da.Fill(ds, "SearchResults");
                Response.Write("Search Results: <br>");
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
    
                {
    
                            Response.Write("<br>" + ds.Tables[0].Rows[i]["vpath"].ToString());
    
                }
    
    %>
    					
  4. Modificar o arquivo Web.config para habilitar a representação da seguinte maneira:
    <identity impersonate="true" />
    					
  5. Verifique se o contexto de segurança sob a qual o processo do operador aspnet_wp.exe é executado é a conta ASPNET. Para fazer isso, defina o atributo userName para máquina e, em seguida, defina o atributo senha como autogenerate no <processmodel> seção do arquivo Machine.config.

    Observação Por padrão, o processo do operador do ASP.NET é definido para ser executado sob o contexto de segurança da conta ASPNET restrito.
  6. Inicie o serviço de indexação no computador.
  7. Criar o aplicativo e abra a página .aspx no seu navegador. Observe que você recebe a mensagem de erro listada na seção "Sintomas".

Referências

Para obter mais informações sobre a representação no ASP.NET, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
306158Como implementar a representação em um aplicativo ASP.NET
Para obter mais informações sobre a identidade de processo do operador ASP.NET, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
317012Processo e solicitação de identidade no ASP.NET

Propriedades

ID do artigo: 323293 - Última revisão: quarta-feira, 5 de julho de 2006 - Revisão: 3.1
A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.0
  • Microsoft Index Server 2.0
  • Microsoft OLE DB Provider for Index Server 3.0
Palavras-chave: 
kbmt kbhotfixserver kbqfe kbwin2ksp4fix kbother kbfix kbbug kbconfig kbnofix kbsecurity KB323293 KbMtpt
Traduçã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 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: 323293
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com