FIX Windows 統合認証の場合、メモリ リークの原因を失敗します。

文書翻訳 文書翻訳
文書番号: 826216
すべて展開する | すべて折りたたむ

目次

現象

クライアントから Web サービスを利用するときに、Microsoft SOAP 3.0 を使用して、メモリ リークがあります。

メモ 認証方式を設定すると、この現象が発生します。SOAP クライアント オブジェクトを使用して、統合 Windows 認証には、次のコード:
objSoapClient.ConnectorProperty("WinHTTPAuthScheme") = 2
メモ SOAP クライアントの名前は"objSoapClient"です。オブジェクトです。

原因

SOAP クライアント オブジェクトは、Winhttp.dll コンポーネントを使用します。If統合 Windows 認証が失敗でメモリ リークが発生するのにはWinhttp.dll コンポーネント、およびに記載されている現象を確認、「現象」記載します。

解決方法

サポートされている修正プログラムがマイクロソフトから入手可能です。ただし、この修正プログラムはこの資料に記載されている問題のみを修正するものです。この修正プログラムはこの問題が発生しているシステムにのみ適用されます。

この修正プログラムがダウンロードできないか場合は、この記事の上部に「修正プログラムのダウンロード」セクションです。このセクションが表示されない場合は、マイクロソフト カスタマー サービス & サポート修正プログラムを入手するのには、要求を送信します。

メモ その他の問題が発生した場合、またはトラブルシューティングが必要な場合は、別のサービス リクエストを作成する必要があります。追加の質問およびこの特定の修正プログラムの対象とならない問題については、通常のサポート料金が適用されます。一覧マイクロソフト カスタマー サービス & サポートの電話番号のまたは別のサービス リクエストを作成するには、次のマイクロソフト Web サイトを参照してください。
http://support.microsoft.com/contactus/?ws=support
メモ 「修正プログラムのダウンロード」フォームに修正プログラムが提供されている言語を表示します。お使いの言語が表示されない場合は、修正プログラムがその言語の利用できないためにです。 日本語版このファイルの属性があります (またはそれ以降) 次のいます。テーブルです。協定では、日付および時刻これらのファイルに記載されています。時刻 (UTC)。ファイル情報を表示すると、ローカル時刻に変換します。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 Web サービス メソッドです。
  6. で、 ビルド メニューをクリックして ビルドソリューション.
  7. クリックしてください。 開始、し実行.
  8. 種類 しないでください。 で、ファイルを開く ボックスとクリック [OK].
  9. で、 インターネット インフォメーション サービスウィンドウを拡大 既定の Web サイト.
  10. 右クリックします。 SampleWebService、し、クリックしてください。 プロパティ.
  11. で、 SampleWebService プロパティ ダイアログボックスをクリックして、 ディレクトリ セキュリティ タブします。
  12. 下にあります。 [匿名アクセスと認証コントロールをクリックして 編集.
  13. で、 認証方法 ダイアログ ボックスオンにし、 統合 Windows 認証 チェックボックス。

    メモ 他のすべてのチェック ボックスことを確認、認証方法 ダイアログ ボックスがオフになって。
  14. クリックしてください。 [OK] 閉じるを 2 回、SampleWebService プロパティ ダイアログ ボックスです。
  15. 閉じる、 インターネット インフォメーション サービスウィンドウです。
  16. Microsoft Visual Basic 6.0 を起動します。
  17. 標準 EXE プロジェクトを作成します。既定では、Form1 のです。作成します。
  18. 追加します。 コマンド ボタン コントロールとはプログレス バー Form1 に制御します。ツールボックスが含まれていない場合は、は、 プログレス バー 制御は、次の手順を実行します。
    1. で、 プロジェクト メニューをクリックして コンポーネント.
    2. 選択する] をクリックします。 Microsoft Windows の一般的なコントロール 6.0.

      メモ 場合は、 コントロール タブの コンポーネント ダイアログ ボックスはありません。 マイクロソフトWindows コモン コントロール 6.0をクリックして 参照をクリックして MSCOMCTL。OCX、し ファイルを開く.
    3. クリックしてください。 [OK] 閉じるには、 コンポーネント ダイアログ ボックスです。
  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 で認証の詳細についてを参照してください。次のマイクロソフト開発ネットワーク (MSDN) Web サイト。
http://msdn2.microsoft.com/en-us/library/aa383144.aspx
詳細についてをクリックします。マイクロソフト サポート技術情報の資料を参照するのには、次の資料番号ベース:
305965方法: SOAP Toolkit 2.0 を使用して XML Web サービス メソッドを使用

プロパティ

文書番号: 826216 - 最終更新日: 2011年7月30日 - リビジョン: 3.0
キーワード:?
kbbug kbfix kbqfe kbwebservices kbhotfixserver kbautohotfix kbmt KB826216 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:826216
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

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