Viene visualizzato uno o pi¨ messaggi di errore quando si tenta di eseguire una richiesta HTTP in un'applicazione basata su.NET Framework 1.1 Service Pack 1

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

In questa pagina

Sommario

In questo articolo descrive i messaggi di errore potrebbe essere visualizzato quando si utilizza Microsoft.NET Framework 1.1 Service Pack 1 (SP1) per le richieste HTTP di marca o quando si chiama un servizio Web.

Sintomi

Quando si tenta di eseguire una richiesta HTTP in un'applicazione basata sul.NET Framework, Ŕ possibile che venga visualizzato uno o pi¨ dei seguenti messaggi di errore:
Messaggio di errore 1
Connessione sottostante chiusa: Impossibile connettersi al server remoto.
Messaggio di errore 2
La connessione sottostante chiusa: errore imprevisto durante un invio.
Messaggio di errore 3
La connessione sottostante chiusa: errore imprevisto durante un'operazione di ricezione.
Messaggio di errore 4
La connessione sottostante chiusa: il server ha commesso una violazione del protocollo HTTP.
Messaggio di errore 5
Connessione sottostante chiusa: impossibile stabilire un canale sicuro per SSL/TLS.
Messaggio di errore 6
L'operazione Ŕ scaduta

Cause

Messaggio di errore 1

Questo problema si verifica quando il.NET Framework non riesce a stabilire una connessione al server remoto. Questo problema pu˛ verificarsi quando uno o pi¨ delle seguenti condizioni sono vere:
  • Si verifica un'interruzione di rete.
  • Un server proxy consente di bloccare la richiesta HTTP.
  • Si verifica un problema del sistema DNS (Domain Name).
  • Si verifica un problema di autenticazione di rete.
Per risolvere questo problema, vedere soluzioni A, B e C.

Messaggio di errore 2

Questo problema si verifica quando il computer client non Ŕ possibile inviare una richiesta HTTP. Il computer client non pu˛ inviare la richiesta HTTP perchÚ la connessione Ŕ stata chiusa o non Ŕ disponibile. Questo problema pu˛ verificarsi quando il computer client Ŕ l'invio di grandi quantitÓ di dati. Per risolvere questo problema, vedere le risoluzioni A, D, E, F e O.

Messaggio di errore 3

Questo problema si verifica quando il server o un'altra periferica di rete in modo imprevisto si chiude una connessione esistente del protocollo TCP (Transmission Control). Questo problema pu˛ verificarsi quando un valore di timeout del server o della periferica di rete Ŕ impostato su un valore troppo basso. Per risolvere questo problema, vedere le risoluzioni A, D, E, F e O. Il problema pu˛ verificarsi anche se il server reimposta la connessione in modo imprevisto, ad esempio se un'eccezione non gestita si blocca il processo del server. Analizzare i registri del server per vedere se ci˛ potrebbe essere il problema.

Messaggio di errore 4

Questo problema si verifica quando il.NET Framework rileva che la risposta del server non Ŕ conforme alle RFC di HTTP 1.1. Questo problema pu˛ verificarsi quando la risposta contiene intestazioni errate o delimitatori di intestazione non corretta. Per risolvere questo problema, vedere le risoluzioni A e G.

Per ulteriori informazioni sulle intestazioni HTTP, visitare il seguente sito Web di World Wide Web Consortium:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.HTML#sec6
Microsoft fornisce informazioni di contatto di terze parti per facilitare l'individuazione del supporto tecnico. Le informazioni di contatto possono essere modificate senza preavviso. Microsoft non garantisce l'accuratezza delle informazioni per contattare altri produttori.

Messaggio di errore 5

Questo problema pu˛ verificarsi quando uno o pi¨ delle seguenti condizioni sono vere:
  • Si sta utilizzando un certificato client non valido o un invalidserver.
  • Si verifica un problema di connessione TCP.
  • Il computer client Ŕ l'invio di grandi quantitÓ di dati.
  • Un'impostazione di timeout nel server o su un altro networkdevice Ŕ impostata un valore troppo basso.
  • Si verifica un compatibilityproblem del protocollo HTTPS.
Per problemi di connessione TCP, vedere risoluzioni A, D, E, F e O. Per problemi relativi al certificato client e problemi relativi al certificato server, vedere risoluzioni H e I. Per problemi di compatibilitÓ del protocollo HTTPS, vedere Risoluzione J.

Messaggio di errore 6

Questo problema si verifica quando viene raggiunto il valore di timeout del client prima che si verifica una delle seguenti condizioni:
  • Viene stabilita una connessione HTTP.
  • Una risposta HTTP viene ricevuta dal server.
  • Il flusso di dati viene scritti completamente in orread.
Per risolvere questo problema, vedere le risoluzioni A, E, K, L, M e N.

Risoluzione

Nota. Nell'elenco seguente sono possibili risoluzioni applicabili quando si verifica uno di questi problemi. Non tutte le risoluzioni di questi si applicano a tutti questi problemi. Vedere la descrizione del problema nella sezione "Cause" per determinare quale risoluzione Ŕ applicabile.

Risoluzione A

Per risolvere il problema, assicurarsi che si utilizza la versione pi¨ recente di.NET Framework. Per ulteriori informazioni, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
318785 Come determinare quali versioni di.NET Framework sono installati e se sono stati applicati i service pack

Risoluzione B

Per risolvere il problema, assicurarsi che le impostazioni proxy siano corrette. A tale scopo, utilizzare le tecniche seguenti:
  • Utilizzare il metodo statico di WebProxy.GetDefaultProxy . Per ulteriori informazioni, visitare il Website Microsoft riportato di seguito:
    http://msdn2.microsoft.com/en-us/library/System.NET.WebProxy.GetDefaultProxy (vs.71).aspx
  • Definire un <proxy></proxy> elemento nel file di configurazione dell'applicazione. Per ulteriori informazioni, visitare il seguente sito Web Microsoft:
    http://msdn2.microsoft.com/en-us/library/aa903369 (VS.71).aspx
  • Configurare il client .NET per l'utilizzo di HTTP 1.0 modificando la proprietÓ HttpWebRequest.ProtocolVersion . Per ulteriori informazioni, visitare il Website Microsoft riportato di seguito:
    http://msdn2.microsoft.com/en-us/library/System.NET.HttpWebRequest.ProtocolVersion (vs.71).aspx
    Nota. Per impostazione predefinita, il.NET Framework utilizza HTTP 1.1.
  • Se si utilizza Secure Sockets Layer (SSL), assicurarsi che il proxy non Ŕ configurato per utilizzare tutte le regole che sono blockingHTTPS.
  • Se si utilizza il proxy automatico, scegliere il NumeroArticolo per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:
    873199 L'utilizzo di proxy automatico in codice gestito

Risoluzione C

Per risolvere il problema, assicurarsi che l'applicazione disponga delle autorizzazioni per effettuare chiamate di rete e di effettuare chiamate di socket. Questa soluzione si applica quando l'applicazione che effettua la HttpWebRequest chiamata viene eseguita all'interno di un'applicazione Web. Potrebbe essere necessario concedere le autorizzazioni di lettura per l'account ASPNET in modo da poter accedere alle seguenti risorse:
  • Il Provider WS2.0 (Wspwsp.dll)file WinSockProxy di Microsoft
  • Il
    HKLM\System\CurrentControlSet\Services\DnsCache
    chiave del Registro di sistema
  • Il
    HKLM\System\CurrentControlSet\Services\WinSock2
    chiave del Registro di sistema
Nota. Per determinare se il processo di lavoro ASPNET dispone delle autorizzazioni necessarie, utilizzare l'utilitÓ FileMon e l'utilitÓ RegMon. Per scaricare l'utilitÓ di FileMon e l'utilitÓ RegMon, visitare il seguente sito Web di Sysinternals:
http://technet.microsoft.com/en-us/Sysinternals/default.aspx
I prodotti di terze parti descritti in questo articolo sono forniti da societÓ indipendenti da Microsoft. Microsoft esclude ogni garanzia, implicita o esplicita, relativamente alle prestazioni o l'affidabilitÓ di tali prodotti.

Risoluzione D

Per risolvere questo problema, disattivare la funzionalitÓ keep-alive. In.NET Framework, impostare la proprietÓ HttpWebRequest.KeepAlive su FALSE. A tale scopo quando si chiama un servizio Web, attenersi alla seguente procedura.

Nota. La funzionalitÓ keep-alive Ŕ necessaria per l'autenticazione NTLM.
  1. Creare una nuova classe ereditando dal proxyclass generato.
  2. Aggiungere un metodo alla classe per eseguire l'override del metodo GetWebRequest . Questa modifica consente di accedere all'oggetto HttpWebRequest . Se si utilizza Microsoft Visual C#, il nuovo mustbe metodo analogo al seguente.
    class MyTestService:TestService.TestService
    {
        protected override WebRequest GetWebRequest(Uri uri)
        {
            HttpWebRequest webRequest = (HttpWebRequest) base.GetWebRequest(uri);
            //Setting KeepAlive to false
            webRequest.KeepAlive = false;
            return webRequest;
        }
    }
    Se si utilizza Microsoft Visual Basic .NET, il nuovo metodo deve besimilar al seguente.
    Class MyTestService 
         Inherits TestService.TestService
            Protected Overrides Function GetWebRequest(ByVal uri As Uri) As System.Net.WebRequest
                Dim webRequest As System.Net.HttpWebRequest
                webRequest = CType(MyBase.GetWebRequest(uri), System.Net.HttpWebRequest)
               'Setting KeepAlive to false 
                webRequest.KeepAlive = False
                GetWebRequest = webRequest
            End Function
    End Class
  3. Creare un'istanza della nuova classe e quindi utilizzare il newclass di chiamare il metodo del servizio Web.

Risoluzione E

Per risolvere questo problema, impostare la proprietÓ ServicePointManager.MaxServicePointIdleTime su minore del valore di timeout della connessione server keep-alive.

Note
  • Quando un oggetto ServicePoint Ŕ rimasto inattivo per il periodo di tempo specificato nella proprietÓ MaxIdleTime , Ŕ idoneo per garbage collection.
  • Assicurarsi che la proprietÓ ServicePointManager.MaxServicePointIdleTime sia impostata prima di tutte le richieste HTTP. Per ulteriori informazioni sulla proprietÓ ServicePointManager.MaxSercvePointIdleTime , visitare il seguente sito Web Microsoft:
    http://msdn2.microsoft.com/en-us/library/System.NET.ServicePointManager.MaxServicePointIdleTime (vs.71).aspx

Risoluzione F

Per risolvere questo problema, aumentare il valore di timeout nel computer server e su altri dispositivi di rete. Per aumentare il valore di timeout in Microsoft Internet Information Services (IIS) 6.0, attenersi alla seguente procedura:
  1. Fare clic su Start, scegliere Pannello di controllo, fare clic su Strumenti di amministrazionee quindi fare clic suGestione Internet Information Services (IIS).
  2. Fare clic sul nome del computer che si desidera toreconfigure e quindi fare clic su siti Web.
  3. Il pulsante destro del sito Web che si desidera riconfigurare, andthen fare clic su proprietÓ.
  4. Digitare un nuovo valore nella casella timeout connessionee quindi fare clic su OK.
  5. ScegliereEscidal menu File .

Risoluzione G

Per ovviare a questo problema, impostare useUnsafeHeaderParsing su True. Per ulteriori informazioni sulla proprietÓ useUnsafeHeaderParsing, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
888528 Un elenco dei bug corretti in.NET Framework 1.1 Service Pack 1 ma non descritti altrove nei singoli articoli della Microsoft Knowledge Base

Risoluzione H

Per risolvere il problema, fornire un certificato client valido per l'applicazione. Per ulteriori informazioni su come utilizzare i certificati client, fare clic sui numeri degli articoli della Microsoft Knowledge Base:
901183 Come chiamare un servizio Web utilizzando un certificato client per l'autenticazione in un'applicazione Web ASP.NET
895971 Come inviare un certificato client, utilizzando le classi HttpWebRequest e HttpWebResponse in Microsoft Visual C# .NET

Risoluzione I

Per risolvere il problema, fornire un certificato di protezione valido per il server. Inoltre, Ŕ possibile risolvere questo problema installando il certificato di autoritÓ di certificazione principale o correggendo il nome comune del certificato server. Per ulteriori informazioni sulla denominazione del certificato server, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
813618 Avviso di protezione: il nome del certificato di protezione non Ŕ valido o non corrisponde al nome del sito
Avviso. Questa procedura potrebbe rendere il computer o la rete pi¨ vulnerabile agli attacchi di utenti malintenzionati o programmi software dannosi, quali i virus. Si sconsiglia questa soluzione, tuttavia queste informazioni vengono fornite per consentire all'utente di implementarla a propria discrezione. Questa soluzione pu˛ essere utilizzata a proprio rischio.

╚ possibile rivedere il codice dell'applicazione per ignorare questi avvisi certificato. A tale scopo, implementare un'interfaccia ICertificatePolicy interfaccia personalizzata. ╚ quindi possibile impostare la proprietÓ CertificatePolicy per utilizzare l'istanza di criteri di certificato prima che venga effettuata la chiamata al metodo di servizio Web.

Nota. Il metodo ICertificatePolicy.CheckValidationResult implementa i criteri di convalida del certificato di applicazione. Per ulteriori informazioni sul metodo ICertificatePolicy.CheckValidationResult , visitare il seguente sito Web Microsoft:
http://msdn2.microsoft.com/en-us/library/System.NET.ICertificatePolicy.CheckValidationResult (vs.71).aspx
Per ulteriori informazioni e un esempio di codice, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
823177 PRB: "System.Net.WebException. La connessione sottostante chiusa. Quando si esegue l'aggiornamento di.NET Framework viene visualizzato il messaggio di errore Impossibile stabilire una relazione di trust con il server remoto"
Importante Si consiglia di non ignorare gli avvisi del certificato SSL nel codice a causa di possibili rischi di protezione.

Risoluzione J

Per risolvere questo problema, modificare il protocollo HTTPS da SSL a livello di protezione TLS (Transport).

Nota. Se si utilizza giÓ TLS, Ŕ necessario modificare il protocollo HTTPS per SSL. Per modificare il protocollo HTTPS sul computer client, vedere la sezione "ProprietÓServicePointManager.SecurityProtocol" sul seguente sito Web Microsoft:
http://msdn2.microsoft.com/en-us/library/System.NET.ServicePointManager.SecurityProtocol.aspx
Nota. Ad esempio, per supportare il protocollo SSL3 e il protocollo TLS1, utilizzare codice simile al seguente.
ServicePointManager.SecurityProtocol= SecurityProtocolType.Ssl3|SecurityProtocolType.Tls;
Per ulteriori informazioni su come modificare il protocollo HTTPS sul computer server, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
187498 Come disattivare PCT 1.0, SSL 2.0, SSL 3.0 o TLS 1.0 in Internet Information Services

Risoluzione K

Per risolvere questo problema, aumentare il valore della proprietÓ maxConnection . A tale scopo, modificare i file di configurazione dell'applicazione o aggiungere il codice dell'applicazione.

Nota. Il valore predefinito della proprietÓ maxConnection Ŕ 2. Per Microsoft ASP.NET applicazioni connesse che chiamano servizi Web, si consiglia di impostare un valore di 12 volte il numero di processori. Per impostare questo valore utilizzando il codice dell'applicazione, utilizzare la proprietÓ ServicePointManager . Per ulteriori informazioni sulla proprietÓ ServicePointManager , visitare il seguente sito Web Microsoft:
http://msdn2.microsoft.com/en-us/library/System.NET.ServicePointManager.DefaultConnectionLimit (vs.71).aspx
Per impostare questo valore utilizzando i file di configurazione dell'applicazione, aggiungere il codice seguente nel file di configurazione.
<connectionManagement>
  <add address="*" maxconnection="12"/>
</connectionManagement>
Per ulteriori informazioni su come utilizzare il <connectionManagement></connectionManagement> elemento, visitare il seguente sito Web Microsoft:
http://msdn2.microsoft.com/en-us/library/aa903351 (VS.71).aspx

Risoluzione L

Per risolvere il problema, assicurarsi che le impostazioni di timeout del server e su altri dispositivi di rete vengono implementate correttamente. Per ulteriori informazioni su come implementare le impostazioni di timeout, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
904262 La richiesta viene inviata per la classe HttpWebRequest potrebbe bloccarsi quando si utilizza la classe HttpWebRequest in un'applicazione ASP.NET

Risoluzione M

Per risolvere questo problema, informazioni sull'ottimizzazione delle prestazioni di ASP.NET. Per ulteriori informazioni sull'ottimizzazione delle prestazioni di ASP.NET, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
821268 Conflitto, scarse prestazioni e deadlock quando si eseguono le richieste del servizio Web da applicazioni ASP.NET

Risoluzione N

Per risolvere questo problema, aumentare i valori delle proprietÓ di timeout nel codice dell'applicazione client. A tale scopo, utilizzare le seguenti proprietÓ:
  • HttpWebRequest.Timeout
  • HttpWebRequest.ReadWriteTimeout
Per ulteriori informazioni sulla proprietÓ HttpWebRequest.Timeout , visitare il seguente sito Web Microsoft:
http://msdn2.microsoft.com/en-us/library/cy9yd268.aspx
Per ulteriori informazioni sulla proprietÓ HttpWebRequest.ReadWriteTimeout , visitare il seguente sito Web Microsoft:
http://msdn2.microsoft.com/en-us/library/b1w9c0s4.aspx

Risoluzione O

Per risolvere il problema, assicurarsi che il computer client non invia 100 HTTP-intestazione di continuare. Inoltre, assicurarsi che il computer client non prevede di ricevere 100 HTTP-intestazione di continuare.

Nota. Questa soluzione Ŕ efficace se il server Web o il server proxy non supporta il protocollo HTTP 100-intestazione di continuare. Per ulteriori informazioni su come disattivare il protocollo HTTP 100-continua intestazione per il computer client, visitare il seguente sito Web Microsoft:
http://msdn2.microsoft.com/en-us/library/System.NET.ServicePointManager.Expect100Continue.aspx

Riferimenti

Per ulteriori informazioni sulle prestazioni quando si apportano Web chiamate da applicazioni connesse a ASP.NET di servizio, visitare il seguente sito Web Microsoft:
http://msdn2.microsoft.com/en-us/library/aa480507.aspx
Per ulteriori informazioni sui problemi di prestazioni e deadlock quando si apportano Web richieste da applicazioni connesse a ASP.NET, fare clic sul numero dell'articolo riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:
821268 Conflitto, scarse prestazioni e deadlock quando si eseguono le richieste del servizio Web da applicazioni ASP.NET
Per ulteriori informazioni su come migliorare le prestazioni di applicazioni connesse a ASP.NET, visitare il seguente sito Web Microsoft:
http://msdn2.microsoft.com/en-us/library/ms998549.aspx
Per ulteriori informazioni su come migliorare le prestazioni dei servizi Web, visitare il seguente sito Web Microsoft:
http://msdn2.microsoft.com/en-us/library/ms998562.aspx
Per ulteriori informazioni su come compilare applicazioni protette connesse a ASP.NET, visitare il seguente sito Web Microsoft:
http://msdn2.microsoft.com/en-us/library/aa302408.aspx
Nota. Il protocollo di trasporto TCP viene utilizzato per le richieste HTTP. TCP Ŕ un protocollo affidabile orientato alla connessione. Tuttavia, se la chiusura imprevista di una connessione TCP, l'applicazione deve eseguire la richiesta. Per ulteriori informazioni sul protocollo TCP e sul comportamento dei client se il server chiude una connessione, visitare il seguente sito Web di World Wide Web Consortium:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.HTML#sec8. 2.4
Microsoft fornisce informazioni di contatto di terze parti per facilitare l'individuazione del supporto tecnico. Le informazioni di contatto possono essere modificate senza preavviso. Microsoft non garantisce l'accuratezza delle informazioni per contattare altri produttori. Per ulteriori informazioni sull'utilitÓ di FileMon e l'utilitÓ RegMon, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
198038 Strumenti utili per problemi di package e distribuzione
Per ulteriori informazioni su Network Monitor, fare clic sui numeri per visualizzare gli articoli della Microsoft Knowledge Base:
148942 Acquisizione del traffico di rete con Network Monitor
812953 Come utilizzare Network Monitor per acquisire il traffico di rete

ProprietÓ

Identificativo articolo: 915599 - Ultima modifica: giovedý 31 ottobre 2013 - Revisione: 4.0
Le informazioni in questo articolo si applicano a:
  • Microsoft .NET Framework 1.1 Service Pack 1
Chiavi:á
kbtshoot kbprb kbmt KB915599 KbMtit
Traduzione automatica articoli
IMPORTANTE: il presente articolo Ŕ stato tradotto tramite un software di traduzione automatica di Microsoft ed eventualmente revisionato dalla community Microsoft tramite la tecnologia CTF (Community Translation Framework) o da un traduttore professionista. Microsoft offre articoli tradotti manualmente e altri tradotti automaticamente e rivisti dalla community con l?obiettivo di consentire all'utente di accedere a tutti gli articoli della Knowledge Base nella propria lingua. Tuttavia, un articolo tradotto automaticamente, anche se rivisto dalla community, non sempre Ŕ perfetto. Potrebbe contenere errori di vocabolario, di sintassi o di grammatica. Microsoft declina ogni responsabilitÓ per imprecisioni, errori o danni causati da una traduzione sbagliata o dal relativo utilizzo da parte dei clienti. Microsoft aggiorna frequentemente il software e gli strumenti di traduzione automatica per continuare a migliorare la qualitÓ della traduzione.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 915599
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.

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