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

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.
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

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 323293 - Última Revisão: 07/05/2006 15:50:24 - Revisão: 3.1

Microsoft ASP.NET 1.0, Microsoft Index Server 2.0, Microsoft OLE DB Provider for Index Server 3.0

  • kbmt kbhotfixserver kbqfe kbwin2ksp4fix kbother kbfix kbbug kbconfig kbnofix kbsecurity KB323293 KbMtpt
Comentários