CORRECÇÃO: "acesso negado" mensagem de erro quando tenta aceder a serviço de indexação do ASP.NET com representação activada

Traduções de Artigos Traduções de Artigos
Artigo: 323293 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Quando procura contra Index Server através de uma página ASP.NET, poderá receber a seguinte mensagem de erro:
O acesso é negado. Descrição: Ocorreu uma excepção não processada durante a execução da solicitação da web actual. Reveja o rastreio da pilha para mais informações sobre o erro e onde tem origem no código.

Detalhes da excepção: System.Data.OleDb.OleDbException: acesso negado.
Este comportamento é observado apenas activar a representação para a aplicação Web do ASP.NET e o contexto de segurança em que o processo de trabalho do ASP.NET (Aspnet_wp.exe) é executado estiver a conta ASPNET.

Resolução

Informações sobre Service Packs

Para resolver este problema, obtenha o service pack mais recente para o Microsoft Windows 2000. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
260910Como obter o Windows 2000 service pack mais recente

Como contornar

Utilize um dos seguintes métodos para contornar este problema:
  • Desactive a representação para a aplicação Web ASP.NET toda. Esta é a predefinição.
  • Desactive a representação apenas para a página .aspx específico que a procura do Index Server. Para efectuar este procedimento, adicione uma tag <location> ao ficheiro Web.config da seguinte forma:
    <location path="filename.aspx">
    <system.web>
       <identity impersonate="false" />
    </system.web>
    </location>
    					
Se estas soluções não forem aceitáveis para si, pode alterar o contexto de segurança em que o processo de trabalho do ASP.NET é executado à conta SYSTEM. No entanto, a Microsoft não recomenda que defina o contexto de segurança do processo de trabalho do ASP.NET para a conta SYSTEM porque a conta SYSTEM é uma conta de administrador altamente privilegiada no computador do servidor da Web. Utilize esta solução alternativa apenas se nenhuma das outras soluções for aceitável.

Para alterar o contexto de segurança em que o processo de trabalho do ASP.NET é executado, definir o atributo userName para SYSTEM e, em seguida, definir o atributo palavra-passe para autogenerate in a <processmodel> secção do ficheiro Machine.config. O ficheiro Machine.config está localizado na pasta \Microsoft.Net\Framework\v1.0.3705\Config C:\ Windows Directory.

Ponto Da Situação

A Microsoft confirmou que este erro ocorre nos produtos do Microsoft listados na secção "Aplica-se a".Este erro foi corrigido no ASP.NET (incluído com o .NET Framework) 1.1. A Microsoft confirmou que este é um problema no Microsoft Windows 2000. Este problema foi corrigido pela primeira vez no Microsoft Windows 2000 Service Pack 4.

Mais Informação

Passos para reproduzir o comportamento

  1. Inicie o Microsoft Visual Studio NET..
  2. Crie uma aplicação Web do ASP.NET.
  3. Adicione o seguinte código no 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 ficheiro Web.config para activar a representação da seguinte forma:
    <identity impersonate="true" />
    					
  5. Certifique-se que o contexto de segurança na qual o processo de trabalho Aspnet_wp.exe é executado é a conta ASPNET. Para o fazer, defina o atributo userName para computador e defina o atributo de palavra-passe para autogenerate in a <processmodel> secção do ficheiro Machine.config.

    Nota Por predefinição, o processo de trabalho do ASP.NET está 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. Compilar a aplicação e, em seguida, abra a página .aspx no browser. Repare que é apresentada a mensagem de erro listada na secção "Sintomas".

Referências

Para obter mais informações sobre representação no ASP.NET, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
306158Como implementar a representação numa aplicação do ASP.NET
Para obter mais informações sobre a identidade de processo de trabalho do ASP.NET, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
317012Identidade de processo e um pedido no ASP.NET

Propriedades

Artigo: 323293 - Última revisão: 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 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: 323293
Exclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.

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