RISOLVERE: Le cause Winhttp.dll impossibile un'autenticazione integrata di perdita di memoria Quando Windows

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

In questa pagina

Sintomi

Quando si tenta di utilizzare un servizio Web da un client che utilizza 3,0 Libreria SOAP Microsoft, è possibile notare una perdita di memoria.

Nota: Si nota questo comportamento quando imposta lo schema di autenticazione per l'oggetto SOAP client a autenticazione integrata di Windows utilizzando il seguente codice:
objSoapClient.ConnectorProperty("WinHTTPAuthScheme") = 2
Nota "objSoapClient" è il nome di un oggetto SOAP client.

Cause

L'oggetto SOAP client utilizza il componente Winhttp.dll. Se autenticazione integrata di Windows non riesce, una perdita di memoria si è verificata nel componente Winhttp.dll e si nota il comportamento descritto nella sezione "Sintomi".

Risoluzione

Una correzione supportata è disponibile di Microsoft. Tuttavia è destinato che questa correzione risolva solo il problema descritto in questo articolo. Applicare questa correzione rapida solo ai sistemi in cui si verifica questo problema specifico.

Se la correzione è disponibile per il download, c'è una sezione di "download disponibile di Aggiornamento rapido" nella parte superiore di questo articolo di Knowledge Base. Se non si visualizza questa sezione, inviare una richiesta a servizio clienti Microsoft e a Supporto per ottenere la correzione.

Nota: Se gli ulteriori problemi si verificano o se qualsiasi risoluzione è necessaria, si può dovere creare una richiesta di servizio separato. I costi di supporto normale riguarderanno le domande di supporto aggiuntivo e i problemi che non risultano per questa correzione specifica. Per che crei una richiesta di servizio separato un elenco completo o di numeri di telefono servizio clienti Microsoft e Support, visitare il seguente sito Web Microsoft:
http://support.microsoft.com/contactus/?ws=support
Nota: La maschera "il download disponibile di Hotfix" visualizza le lingue per cui è disponibile la correzione. Se non si visualizza la lingua, esso è perché non è una correzione disponibile per quella lingua. La versione inglese di ciò ha gli attributi di file (o successivi) quelli sono elencati nella seguente tabella. Le date e le volte per questi file sono visualizzate in Coordinated Universal Time (UTC) nell'elenco. Quando si visualizzano le informazioni sul file, viene convertito nella base all'ora locale. Per cercare la differenza fra UTC e fra l'ora locale, utilizzare la scheda disponibile Fuso orario nello strumento Data e ora in Pannello di controllo.

Microsoft Windows 2000 Operating Systems

 

    Date         Time   Version            Size    File name
   --------------------------------------------------------------
   27-Aug-2003  05:22  5.1.2600.1264     310,784  Winhttp.dll      
  
 
				

Sistemi operativi di Microsoft Windows XP

 

      Date         Time   Version            Size    File name
   --------------------------------------------------------------
   21-Aug-2003  05:46  5.1.2600.1264     945,152  Winhttp.dll      
  
  
 
				

Status

Microsoft ha confermato che ciò è un bug nei prodotti Microsoft elencati all'inizio di questo articolo.

Informazioni

Procedure per riprodurre il problema

  1. Avviare Microsoft Visual Studio .NET
  2. Dal menu File, scegliere Nuovo e quindi scegliere Project.
  3. Selezionare Progetti di Visual Basic o Visual C# in Tipi progetto e quindi scegliere Servizio Web ASP.NET in Modelli.
  4. Assegnare al progetto il nom SampleWebService.
  5. Nel file Service1.asmx, rimuovere il commento dal metodo HelloWorld di servizio Web.
  6. Dal menu Genera, scegliere Genera soluzione.
  7. Fare clic sul pulsante Start e quindi scegliere Esegui.
  8. Tipo inetmgr Nel <UITERM>, Aprire la casella </UITERM> e quindi scegliere OK.
  9. Nella finestra di Internet Information Services, Sito Web predefinito espandere.
  10. Fare clic con il pulsante destro di SampleWebService e quindi scegliere Proprietà.
  11. Nella finestra di dialogo SampleWebService Properties, selezionare la scheda Protezione directory.
  12. Controllo autenticazione e accesso anonimo, fare clic su Modifica.
  13. Nella finestra di dialogo Metodi di autenticazione, selezionare la casella di controllo autenticazione integrata di Windows.

    Nota: Verificare che tutte le altre caselle di controllo nella finestra di dialogo Metodi di autenticazione siano deselezionate.
  14. Scegliere OK due volte per chiudere la finestra di dialogo SampleWebService Properties.
  15. Chiudere la finestra di Internet Information Services.
  16. Avviare Microsoft Visual Basic 6.0.
  17. Creare un progetto EXE standard. Per l'impostazione predefinita, si crea Form1.
  18. Aggiungere un controllo CommandButton e un controllo ProgressBar a Maschera1. Se la Casella degli strumenti non contiene il controllo ProgressBar, procedere come segue:
    1. Dal menu Progetto, scegliere Componenti.
    2. Microsoft Windows Common Controls 6.0 selezionare Clic per selezionare.

      Nota fa clic su Sfoglia, fa clic su MSCOMCTL.OCX e quindi fa clic su Apri se non contiene Microsoft Windows Common Controls 6.0 la scheda Controls della finestra di dialogo Componenti.
    3. Scegliere OK per chiudere la finestra di dialogo Componenti.
  19. All'evento di click del controllo Command1, incollare il codice riportato di seguito:
    Dim objSoapClient As Object
    Dim wsdl As String
    Dim MySoapResponse As String
    Dim i As Long
    
    ' The wsdl variable contains the physical path of the wsdl in the client.
    wsdl = "C:\SoapClient\SoapTestSrv.wsdl"
    Set objSoapClient = CreateObject("Mssoap.SoapClient30")
    objSoapClient.MSSoapInit wsdl
    
    ' The value of AuthUser/AuthPassword must be incorrect for a memory leak to occur.
    objSoapClient.ConnectorProperty("AuthUser") = "TestUserid"
    objSoapClient.ConnectorProperty("AuthPassword") = "TestPassword"
    objSoapClient.ConnectorProperty("WinHTTPAuthScheme") = 2
    
    ' Replace ServerName with the name of the server where the Web service Service1.asmx is hosted.
    objSoapClient.ConnectorProperty("EndPointURL") = "http://ServerName/SampleWebService/Service1.asmx"
    
    For i = 1 To 500000
        On Error Resume Next
        On Error GoTo Error
        MySoapResponse = objSoapClient.HelloWorld
    
        'If you run this code, you will notice a memory leak.
        If (i Mod 500000) = 0 Then
            ProgressBar1.Value = ProgressBar1.Value + 1
        End If
    
    Error:
        MsgBox (Err.Description)
    Next
    
    Set objSoapClient = Nothing
  20. Dal menu Esegui, scegliere Avvia. Si visualizza Form1.
  21. In Form1, fare clic su Command1.
Nota: Si nota questo comportamento in tutta l'applicazione che utilizza il componente Winhttp.dll e che utilizza anche autenticazione integrata di Windows.

Riferimenti

Per ulteriori informazioni sull'autenticazione in WinHTTP, visitare il seguente sito Web Microsoft Developer Network ( MSDN ):
http://msdn2.microsoft.com/en-us/library/aa383144.aspx
Per ulteriori informazioni, fare clic sul seguente numero di articolo per visualizzare l'articolo del Microsoft Knowledge Base:
305965 COME: Utilizza i metodi di servizi Web XML utilizzando SOAP Toolkit 2.0

Proprietà

Identificativo articolo: 826216 - Ultima modifica: giovedì 15 novembre 2007 - Revisione: 1.7
Le informazioni in questo articolo si applicano a
  • Microsoft SOAP Toolkit 3.0 alle seguenti piattaforme
    • the operating system: Microsoft Windows XP
    • the operating system: Microsoft Windows 2000
Chiavi: 
kbautohotfix kbhotfixserver kbqfe kbqfe kbwebservices kbbug kbfix KB826216 KbMtit kbmt
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. Nel caso in cui si riscontrino degli errori e si desideri inviare dei suggerimenti, è possibile completare il questionario riportato alla fine del presente articolo.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 826216
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