Microsoft KB Archive/317732

= FIX: SOAPClient Sends a Second HTTP Request if ConnectorProperty &quot;Timeout&quot; Value Expires =

Article ID: 317732

Article Last Modified on 10/12/2005

-

APPLIES TO


 * Microsoft SOAP Toolkit 2.0

-



This article was previously published under Q317732



SYMPTOMS
If a SoapClient object sets the &quot;Timeout&quot; ConnectorProperty, and the server cannot respond in the specified &quot;Timeout&quot; value, the SOAP Toolkit 2.0 SoapConnector sends a second SOAP request after the timeout expires.



CAUSE
This is caused by the underlying http library (HttpLib) that the SoapConnector uses.



RESOLUTION
A supported hotfix is now available from Microsoft, but it is only intended to correct the problem that is described in this article. Only apply it to systems that are experiencing this specific problem. This hotfix may receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next SOAP 3.0 Toolkit that contains this hotfix.

To resolve this problem immediately, contact Microsoft Product Support Services to obtain the fix. For a complete list of Microsoft Product Support Services phone numbers and information about support costs, visit the following Microsoft Web site:

http://support.microsoft.com/contactus/?ws=support

NOTE: In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The typical support costs will apply to additional support questions and issues that do not qualify for the specific update in question.

The English version of this fix has the file attributes (or later) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.

  Date         Time   Version      Size             File name 11-Feb-2002       1.2.911.0    118,272 bytes    hlsc10.dll 11-Feb-2002       1.2.911.0    25,088 bytes     wisc10.dll



WORKAROUND
To work around this issue, use one of the following methods:
 * Method 1: Upgrade to the SOAP 3.0 Toolkit, because the SOAP 3.0 Toolkit does not use the http library (HttpLib).
 * Method 2: Delete the hlsc10.dll in a client-to-server scenario.



STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.



Steps to Reproduce the Behavior
 Create a Visual Basic 6.0 ActiveX DLL Project.  Insert the following code in a class module that is named SOAPTimeout: Option Explicit

Public Function Test As String On Error Resume Next Dim TestObj As Object Dim Testi As Long For Testi = 1 To 1000000 Set TestObj = CreateObject(&quot;ADODB.Connection&quot;) Set TestObj = Nothing Next Test = &quot;Test Complete&quot; End Function  Generate SOAPTimeoutTest.dll. Run the Soap Trace Utility (which is included with the SOAP Toolkit) for Formatted Trace at: local port = 8080</li> Use the WSDL Generator to generate .wsdl and .wsml files. <ul> Specify SoapTimeout as the name of the service, and then set the local path to the COM DLL that is generated in the first section.</li> Check the Test Web method so that it is exposed on the site.</li> Set the Listener Uniform Resource Identifier (URI) as follows: http://locahost:8080/SoapTimeout/ </li></ul>

</li>  Create a Visual Basic 6.0 Standard EXE with the following code: Private Sub Form_Load Dim ClientTest As New MSSOAPLib.SoapClient Dim Str As String ClientTest.ClientProperty(&quot;ServerHTTPRequest&quot;) = False ClientTest.mssoapinit &quot;http://localhost:8080/SOAPTimeout/SoapTimeout.wsdl&quot; ClientTest.ConnectorProperty(&quot;Timeout&quot;) = 2000 Str = ClientTest.Test MsgBox Str End Sub </li> Run the Client. The Soap Trace Utility shows that a second request is sent after the timeout interval expires.</li></ol>

If you remove or increase the &quot;Timeout&quot; value, or you install the hotfix, the second request is not sent.

Keywords: kbbug kbfix kbqfe kbhotfixserver KB317732

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.