ИСПРАВЛЕНИЕ: Winhttp.dll вызывает утечку памяти при встроенная проверка подлинности Windows сбой

Переводы статьи Переводы статьи
Код статьи: 826216
Развернуть все | Свернуть все

В этой статье

Проблема

При попытке использовать веб-службы с клиента, использует Microsoft SOAP 3.0, могут возникнуть утечки памяти.

Примечание Вы заметили это поведение при установке схемы проверки подлинности для объекта клиента SOAP для встроенной проверки подлинности Windows с помощью Следующий код:
objSoapClient.ConnectorProperty("WinHTTPAuthScheme") = 2
Примечание «objSoapClient» является именем клиента SOAP объект.

Причина

Компонента Winhttp.dll использует объект клиента SOAP. Если Сбой проверки подлинности Windows, интегрированный, утечка памяти в Компонента WinHTTP.dll и наблюдается поведение, описанное в В разделе «Проблема».

Решение

Корпорация Майкрософт выпустила исправление. Однако данное исправление предназначено для устранения проблемы, описанной в этой статье. Данное исправление только в тех системах, в которых обнаружена эта специфическая неполадка.

Если исправление доступно для загрузки, имеется раздел «Исправление доступно для загрузки» в верхней части статьи базы знаний. Если этот раздел не отображается, отправьте запрос и службу поддержки для получения исправления.

Примечание Если возникают другие проблемы или необходимо устранить неполадки, возможно создать отдельный запрос на обслуживание. Затраты на обычные службы поддержки будут применяться дополнительные вопросы и проблемы, не связанные с данным исправлением, оплачиваются. Для получения полного списка телефонов службы поддержки и обслуживания клиентов корпорации Майкрософт или создать отдельный запрос посетите следующий веб-узел корпорации Майкрософт:
http://support.Microsoft.com/contactus/?ws=Support
Примечание В форме «Исправление доступно для загрузки» отображаются языки, для которых доступно исправление. Если язык не отображается, значит исправления недоступна для данного языка. Версия на английском языке Это имеет атрибуты файла (или более поздней версии), приведенные в следующих Таблица. Дата и время для файлов указаны в скоординированные универсальной время (UTC). При просмотре сведений о файле, он преобразуется в локальное время. Чтобы узнать разницу между временем по Гринвичу и местным временем, следует использовать Время Зона вкладку Дата и время на панели управления.

Операционные системы Microsoft Windows 2000

 

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

Операционные системы Microsoft Windows XP

 

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

Статус

Корпорация Майкрософт подтвердила, что это является ошибкой в продуктах Майкрософт, которые являются перечисленных в начале данной статьи.

Дополнительная информация

Действия по воспроизведению проблемы

  1. Запустите Microsoft Visual Studio.NET.
  2. На Файл Выберите пунктНовый, а затем нажмите кнопку Проект.
  3. Нажмите кнопку Проекты Visual Basic -или-Проекты Visual C# Из списка Типы проектов, и Нажмите кнопку ASP.NET веб-службы Из спискаШаблоны.
  4. Имя проектаSampleWebService.
  5. В файл Service1.asmx, раскомментируйте"HelloWorld" Метод веб-службы.
  6. На Построение меню, нажмите кнопку Построение Решение.
  7. Нажмите кнопку Начало, а затем нажмите кнопкуЗапустить.
  8. Тип inetmgr В диалоговом окнеОткрыть поле, а затем нажмите кнопку ОК.
  9. В Информационные службы Интернетаокно, разверните узел Веб-узел по умолчанию.
  10. Щелкните правой кнопкой мыши SampleWebService, а затем Нажмите кнопку Свойства.
  11. В Свойства SampleWebService диалоговое окно Выберите Безопасность каталога Вкладка.
  12. В группе Анонимный доступ и проверка подлинности Управление, нажмите кнопку Редактирование.
  13. В Методы проверки подлинности диалоговое окно, Выберите Встроенная проверка подлинности Windows загрузке поле.

    Примечание Убедитесь, что все другие флажки в окнеМетоды проверки подлинности диалоговое окно очищается.
  14. Нажмите кнопку ОК два раза, чтобы закрытьСвойства SampleWebService диалоговое окно.
  15. Закрыть Информационные службы Интернетаокно.
  16. Запустите Microsoft Visual Basic 6.0.
  17. Создайте стандартный exe-ФАЙЛ проекта. По умолчанию — Form1 создан.
  18. Добавить CommandButton элемент управления иКомпонент ProgressBar элемент управления в форму Form1. Если панель элементов не содержит очередь Компонент ProgressBar элемент управления, выполните следующие действия:
    1. На Проект меню, нажмите кнопку Компоненты.
    2. Выберите Общие Microsoft Windows Элементы управления версии 6.0.

      Примечание Если Элементы управления на вкладке Компоненты диалоговое окно не появляется Корпорация Майкрософт Общие элементы управления Windows 6.0, нажмите кнопку Обзор, нажмите кнопку MSCOMCTL.OCX, а затем нажмите кнопку Открыть.
    3. Нажмите кнопку ОК Чтобы закрыть Компоненты диалоговое окно.
  19. В Нажмите кнопку события Command1 элемент управления, вставьте следующий код:
    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. На Запустить меню, нажмите кнопкуНачало. Будет отображена форма Form1.
  21. На Форма Form1, нажмите кнопку Command1.
Примечание Обратите внимание, это поведение в любое приложение, использующее Компонента WinHTTP.dll и который также используется встроенная проверка Windows Проверка подлинности.

Ссылки

Дополнительные сведения о проверке подлинности в WinHTTP следующий веб-узел Microsoft Developer Network (MSDN):
http://msdn2.Microsoft.com/en-us/library/aa383144.aspx
Для получения дополнительных сведений нажмите кнопку номер следующей статьи базы знаний Майкрософт Основание:
305965ПРАКТИЧЕСКОЕ руководство: Использовать методы веб-службы XML с использованием SOAP Toolkit 2.0

Свойства

Код статьи: 826216 - Последний отзыв: 15 июня 2011 г. - Revision: 4.0
Ключевые слова: 
kbautohotfix kbhotfixserver kbqfe kbwebservices kbbug kbfix kbmt KB826216 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:826216

Отправить отзыв

 

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