FIX: "accesso negato" messaggio di errore quando si tenta di accedere a servizio di indicizzazione da ASP.NET con la rappresentazione attivata

Traduzione articoli Traduzione articoli
Identificativo articolo: 323293 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Quando esegue una ricerca in Index Server tramite una pagina ASP.NET, Ŕ pu˛ visualizzato il seguente messaggio di errore:
Accesso negato. Descrizione: Si Ŕ verificata un'eccezione non gestita durante l'esecuzione della richiesta web corrente. Eseguire l'analisi dello stack per ulteriori informazioni sull'errore e in cui ha avuto origine nel codice.

Dettagli eccezione: System.Data.OleDb.OleDbException: accesso negato.
Questo comportamento Ŕ osservato solo se si attiva la rappresentazione per l'applicazione Web ASP.NET e il contesto di protezione in cui il processo di lavoro ASP.NET (Aspnet_wp.exe) viene eseguito Ŕ l'account ASPNET.

Risoluzione

Informazioni sul Service pack

Per risolvere il problema, ottenere il service pack pi¨ recente per Microsoft Windows 2000. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
260910Come ottenere il service pack pi¨ recente per Windows 2000

Workaround

Per aggirare il problema, utilizzare uno dei seguenti metodi:
  • Disattivare la rappresentazione per l'intera applicazione Web ASP.NET. Questo Ŕ l'impostazione predefinita.
  • Disattivare la rappresentazione solo per la pagina aspx particolare che esegue la ricerca di Index Server. A tale scopo, aggiungere un tag <location> nel file Web.config come segue:
    <location path="filename.aspx">
    <system.web>
       <identity impersonate="false" />
    </system.web>
    </location>
    					
Se queste soluzioni alternative non sono accettabili per l'utente, Ŕ possibile modificare il contesto di protezione in cui il processo di lavoro ASP.NET viene eseguito all'account SYSTEM. Tuttavia, non Ŕ consigliabile impostare il contesto di protezione del processo di lavoro di ASP.NET all'account SYSTEM perchÚ l'account SYSTEM Ŕ un account con privilegiato elevati di amministratore sul computer server Web. Utilizzare questa soluzione solo se nessuna delle altre soluzioni alternative sono accettabile per l'utente.

Per modificare il contesto di protezione in cui viene eseguito il processo di lavoro di ASP.NET, impostare l'attributo di userName su SYSTEM e quindi impostare l'attributo password autogenerato nel <processmodel> sezione del file Machine.config. Il file di Machine.config si trova nella cartella \Microsoft.Net\Framework\v1.0.3705\Config C:\ Windows Directory.

Status

Microsoft ha confermato che questo un bug nei prodotti sono elencati nella sezione "Si applica a".Questo problema Ŕ stato risolto in ASP.NET (incluso in .NET Framework) 1.1. Microsoft ha confermato che questo un problema di Microsoft Windows 2000. Questo problema Ŕ stato innanzitutto corretto in Microsoft Windows 2000 Service Pack 4.

Informazioni

Procedura per riprodurre il problema.

  1. Avviare Microsoft Visual Studio .NET.
  2. Creare un'applicazione Web ASP.NET.
  3. Aggiungere il codice seguente nel codice HTML di una pagina 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. Modificare il file Web.config per attivare la rappresentazione nel modo seguente:
    <identity impersonate="true" />
    					
  5. Assicurarsi che il contesto di protezione in cui il processo di lavoro Aspnet_wp.exe viene eseguito sia l'account ASPNET. Per effettuare questa operazione, impostare l'attributo userName su computer e quindi impostare l'attributo password per autogenerato nel <processmodel> sezione del file Machine.config.

    Nota Per impostazione predefinita, il processo di lavoro di ASP.NET Ŕ impostato per l'esecuzione con il contesto di protezione dell'account ASPNET con restrizioni.
  6. Avviare il servizio di indicizzazione nel computer.
  7. Generare l'applicazione e quindi aprire la pagina aspx nel browser. Si noti che Ŕ visualizzato il messaggio di errore Ŕ elencato nella sezione "Sintomi".

Riferimenti

Per ulteriori informazioni sulla rappresentazione in ASP.NET, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
306158Come implementare la rappresentazione in un'applicazione ASP.NET
Per ulteriori informazioni sull'identitÓ del processo di lavoro ASP.NET, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
317012IdentitÓ di processo e della richiesta in ASP.NET

ProprietÓ

Identificativo articolo: 323293 - Ultima modifica: mercoledý 5 luglio 2006 - Revisione: 3.1
Le informazioni in questo articolo si applicano a:
  • Microsoft ASP.NET 1.0
  • Microsoft Index Server 2.0
  • Microsoft OLE DB Provider for Index Server 3.0
Chiavi:á
kbmt kbhotfixserver kbqfe kbwin2ksp4fix kbother kbfix kbbug kbconfig kbnofix kbsecurity KB323293 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 323293
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.
Dichiarazione di non responsabilitÓ per articoli della Microsoft Knowledge Base su prodotti non pi¨ supportati
Questo articolo Ŕ stato scritto sui prodotti per cui Microsoft non offre pi¨ supporto. L?articolo, quindi, viene offerto ?cosý come Ŕ? e non verrÓ pi¨ aggiornato.

Invia suggerimenti

 

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