Oprava: Winhttp.dll způsobuje nevracení paměti při Windows integrované ověřování selže

Překlady článku Překlady článku
ID článku: 826216 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Při pokusu o spotřebovat webové služby z klienta, který používá Microsoft SOAP 3.0 všimnout nevracení paměti.

Poznámka: Všimněte si toto chování při nastavit schéma ověřování pro klienta objekt vaše SOAP na integrované ověřování systému Windows pomocí následující kód:
objSoapClient.ConnectorProperty("WinHTTPAuthScheme") = 2
Poznámka "objSoapClient" je název objektu klienta SOAP.

Příčina

Objekt klienta SOAP používá součást Winhttp.dll. Pokud integrované ověřování systému Windows nezdaří, součást Winhttp.dll dochází k nevracení paměti a Všimněte si chování uvedena v "příznaky".

Řešení

K dispozici je podporovaná oprava hotfix od společnosti Microsoft. Tato oprava hotfix je však určena pouze k opravě problému popsanému v tomto článku. Použijte tuto opravu hotfix pouze u systémů, kde dochází k tomuto konkrétnímu problému.

Pokud je oprava hotfix k dispozici ke stažení, v horní části tohoto článku je sekce "Hotfix stažení k dispozici". Není-li tato část uvedena, vyžádejte si tuto opravu hotfix od oddělení služeb zákazníkům a podpory společnosti Microsoft.

Poznámka: Pokud vyskytnout další problémy nebo jakékoli řešení potíží je vyžadován, pravděpodobně budete muset vytvořit zvláštní požadavek na službu. Výdaje na technickou podporu se týkají dalších otázek a problémů, které nelze vyřešit pomocí této opravy konkrétní opravy hotfix. Navštivte následující web společnosti Microsoft pro získání telefonního čísla na Zákaznické centrum, nebo pokud chcete vytvořit samostatnou žádost o podporu:
http://support.microsoft.com/contactus/?ws=support
Poznámka: Zobrazí formulář "Hotfix stažení k dispozici" jazyky, pro které je oprava hotfix k dispozici. Pokud váš jazyk není zobrazen, oprava hotfix není k dispozici pro daný jazyk.Anglická verze této má atributy souborů (nebo novější), které jsou uvedeny v následující tabulce. Data a časy jednotlivých souborů jsou uvedeny ve formátu UTC (Coordinated Universal Time). Pokud zobrazíte informace o souboru, bude převedena na místní čas. Rozdíl mezi místním ČASEM a najít, použijte kartu časové pásmo v ovládacím panelu Datum a čas.

Operační systémy Microsoft Windows 2000

 

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

Operační systémy Microsoft Windows XP

 

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

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o chybu v produktech společnosti uvedených na začátku tohoto článku.

Další informace

Kroky pro reprodukci tohoto chování

  1. Spusťte aplikaci Visual Studio .NET.
  2. V nabídce soubor přejděte na příkaz Nový a klepněte na příkaz projekt.
  3. Klepněte v části Typy projektuJazyka projekty nebo Projekty Visual C# a v části šablony klepněte na příkaz Webová služba ASP.NET.
  4. Název projektu SampleWebService.
  5. V souboru Service1.asmx vložte metodu HelloWorld webové služby.
  6. V nabídce vytvořit klepněte na příkaz Sestavit řešení.
  7. Klepněte na tlačítko Start a potom klepněte na příkaz Spustit.
  8. Do pole Otevřít zadejte inetmgr a klepněte na tlačítko OK.
  9. V Internetová informační služba okno, rozbalte položku Výchozí webový server.
  10. SampleWebService klepněte pravým tlačítkem myši a potom klepněte na příkaz Vlastnosti.
  11. V dialogovém okně Vlastnosti SampleWebService klepněte na kartu Zabezpečení adresáře.
  12. Ve skupinovém rámečku anonymního přístupu a ověřování klepněte na tlačítko Upravit.
  13. V dialogovém okně Způsoby ověřování klepnutím zaškrtněte políčko integrované ověřování systému Windows.

    Poznámka: Přesvědčte se, zda jsou všechny ostatní zaškrtávací políčka v dialogovém okně Metody ověřování zrušeno.
  14. Klepněte dvakrát na tlačítko OK zavřete dialogové okno Vlastnosti SampleWebService.
  15. Internetová informační služba zavřete okno.
  16. Spuštění aplikace Microsoft Visual Basic 6.0.
  17. Vytvoření projektu standardní EXE. Ve výchozím nastavení je vytvořen Form1.
  18. Přidat ovládací prvek CommandButton a řízení ProgressBar Form1. Pokud na panelu nástrojů neobsahuje ovládací prvek ProgressBar, postupujte takto:
    1. V nabídce projekt klepněte na tlačítko součásti.
    2. Klepnutím vyberte Microsoft Windows společné prvky 6.0.

      Poznámka:Prvky kartu v dialogovém okně součástiMicrosoft Windows společné prvky 6.0 neobsahuje, klepněte na tlačítko Procházet, klepněte na tlačítko MSCOMCTL.OCX a klepněte na tlačítko Otevřít.
    3. Klepněte na tlačítko OK zavřete dialogové okno součásti.
  19. V události klepněte na ovládací prvek Command1 vložte následující kód:
    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. V nabídce Run klepněte na tlačítko Start. Zobrazí Form1.
  21. Na Form1 klepněte Command1.
Poznámka: Všimněte si toto chování v libovolné aplikaci, která používá součást Winhttp.dll a také používá integrované ověřování systému Windows.

Odkazy

Další informace o ověřování WinHTTP naleznete na webu Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/aa383144.aspx
Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
305965Postupy: Využívat metody webové služby XML pomocí SOAP Toolkit 2.0

Vlastnosti

ID článku: 826216 - Poslední aktualizace: 15. listopadu 2007 - Revize: 1.7
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft SOAP Toolkit 3.0 na těchto platformách
    • the operating system: Microsoft Windows XP
    • the operating system: Microsoft Windows 2000
Klíčová slova: 
kbmt kbautohotfix kbhotfixserver kbqfe kbqfe kbwebservices kbbug kbfix KB826216 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:826216

Dejte nám zpětnou vazbu

 

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