Düzeltme: Windows kimlik doğrulama ile tümleşik olduğunda, bir bellek sızıntısı WinHTTP.dll nedenler başarısız.

Makale çevirileri Makale çevirileri
Makale numarası: 826216 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Microsoft SOAP 3.0 kullanan bir istemciden bir Web hizmetini kullanmak çalıştığınızda, bir bellek sızıntısı fark edebilirsiniz.

Not Bu davranış, kimlik doğrulama şeması SOAP istemci nesnenize tümleşik Windows kimlik doğrulaması için aşağıdaki kodu kullanarak ayarladığınızda fark:
objSoapClient.ConnectorProperty("WinHTTPAuthScheme") = 2
Not "objSoapClient" SOAP istemci nesnesi adıdır.

Neden

SOAP istemci nesnesi WinHTTP.dll bileşeninin kullanır. Tümleşik Windows kimlik doğrulaması başarısız olursa, bileşen WinHTTP.dll bellek sızıntısı oluşuyor ve "Belirtiler" bölümünde açıklanan davranışla dikkat edin.

Çözüm

Desteklenen bir düzeltme Microsoft'tan edinilebilir. Ancak bu düzeltmenin, yalnızca bu makalede anlatılan sorunu gidermesi amaçlanmıştır. Bu düzeltmeyi yalnızca bu sorunla karşılaşan sistemlere uygulayın.

Düzeltme karşıdan yüklenebilir ise bu Bilgi Bankası makalesinin başında "Düzeltme karşıdan yüklenebilir" bölümü bulunur. Bu bölüm görünmüyorsa, düzeltmeyi edinmek üzere Microsoft Müşteri Hizmetleri ve Destek ekibine bir istekte bulunun.

Not Ek sorunlar oluşursa veya tüm sorun giderme işlemi gerekmiyorsa, ayrı bir hizmet isteği oluşturmanız gerekebilir. Ek destek sorularına ve bu düzeltme için geçerli olmayan sorunlara normal destek ücretleri uygulanır. Microsoft Müşteri Hizmetleri ve Destek telefon numaralarının tam listesi veya ayrı bir hizmet isteği oluşturmak için, aşağıdaki Microsoft Web sitesini ziyaret edin:
http://support.microsoft.com/contactus/?ws=support
Not "Düzeltme karşıdan yüklenebilir" formunda, düzeltmenin kullanılabilir olduğu diller görüntülenir. Kendi dilinizi görmüyorsanız, bunun nedeni bu düzeltme, seçtiğiniz dil için kullanılamaz.Bu güncelleştirmenin İngilizce sürümü, aşağıdaki tabloda listelenen dosya özniteliklerine (veya daha yenisi) sahiptir. Bu dosyaların tarihleri ve saatleri Koordinatlı Evrensel Saat'e (UTC) göre listelenir. Dosya bilgilerini görüntülediğinizde yerel saate dönüştürülür. UTC ve yerel saat arasındaki farkı bulmak için <a0></a0>, Denetim Masası'ndaki Tarih ve Saat aracında saat dilimi sekmesini kullanın.

Microsoft Windows 2000 işletim sistemleri

 

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

Microsoft Windows XP işletim sistemleri

 

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

Durum

Microsoft, bunun bu makalenin başında listelenen Microsoft ürünlerinde bir hata olduğunu onaylamıştır.

Daha fazla bilgi

Davranışı Yeniden Oluşturma Adımları

  1. Microsoft Visual Studio .NET'i başlatın.
  2. Dosya menüsünde Yeni ' nin üzerine gelin ve sonra Project ' i tıklatın.
  3. Visual Basic Projeleri veya Visual C# Projects altında Project Types ' ni tıklatın ve sonra şablonları altında ASP.NET Web Service ' ı tıklatın.
  4. Projeyi SampleWebService.
  5. Service1.asmx dosya içindeki Web hizmeti yöntemi MerhabaDünya uncomment.
  6. Yapı) menüsünde tıklatın Build Solution.
  7. Başlat ' ı tıklatın ve sonra da <a2>Çalıştır</a2>'ı tıklatın.
  8. Inetmgrkutusuna yazın ve Tamam ' ı tıklatın.
  9. Internet ınformation Services penceresinde, Varsayılan Web sitesi genişletin.
  10. SampleWebService ' ı sağ tıklatın ve sonra da Properties ' i tıklatın.
  11. SampleWebService özellikler iletişim kutusunda, Dizin Güvenliği sekmesini tıklatın.
  12. Anonim erişim ve doğrulama denetimi altında Düzenle ' yi tıklatın.
  13. Kimlik doğrulama yöntemleri iletişim kutusunda <a0>Tümleşik Windows kimlik doğrulaması</a0> onay kutusunu seçmek için tıklatın.

    NotKimlik doğrulama yöntemleri</a0> iletişim kutusundaki tüm diğer onay kutularının yeniden işaretlenmiş olmadığını doğrulayın.
  14. SampleWebService özellikler iletişim kutusunu kapatmak için iki kez Tamam ' ı tıklatın.
  15. Internet ınformation Services ' ı kapat pencere.
  16. Microsoft Visual Basic 6. 0'ı başlatın.
  17. Standart exe DOSYASı bir proje oluşturun. Varsayılan olarak, Form1 oluşturulur.
  18. Form1'e, KomutDüğmesi denetimlerdir ve ProgressBar denetimi ekleyin. ProgressBar Denetim Araç kutusu yoksa, aşağıdaki adımları izleyin:
    1. Proje menüsünde bileşenleri ' ni tıklatın.
    2. Microsoft Windows ortak denetimleri 6. 0'ı seçmek için tıklatın.

      NotBileşenleri iletişim kutusunda <a1>denetimler</a1> sekmesinde, Microsoft Windows ortak denetimler 6.0 içermiyorsa, Gözat ' ı tıklatın, MSCOMCTL.OCX ' ı tıklatın ve sonra ' ı tıklatın.
    3. <a0>Bileşenler</a0> iletişim kutusunu kapatmak için Tamam ' ı tıklatın.
  19. Command1 denetimi tıklatın olayında aşağıdaki kodu yapıştırın:
    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. Çalıştır) menüsünde, Başlat ' ı tıklatın. Form1 görüntülenir.
  21. Form1 ' üzerinde Command1 ' ı tıklatın.
Not Bu davranış, WinHTTP.dll bileşeninin kullanır ve ayrıca tümleşik Windows kimlik doğrulaması kullanan uygulama, dikkat edin.

Referanslar

WinHTTP kimlik doğrulaması hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/aa383144.aspx
Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
305965NASıL YAPıLıR: SOAP Toolkit 2. 0'ı kullanarak XML Web hizmeti yöntemlerini kullanır.

Özellikler

Makale numarası: 826216 - Last Review: 15 Kasım 2007 Perşembe - Gözden geçirme: 1.7
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SOAP Toolkit 3.0, Ne zaman ne ile kullanilir:
    • the operating system: Microsoft Windows XP
    • the operating system: Microsoft Windows 2000
Anahtar Kelimeler: 
kbmt kbautohotfix kbhotfixserver kbqfe kbwebservices kbbug kbfix KB826216 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:826216

Geri Bildirim Ver

 

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