I'm new to coding in .NET. I am trying to do an asynchronous call in my code using httpwebrequest. This code works perfectly fine on one server, but does not work on another. The main flow works on the new server, but it somehow does not do the asynchronous calling part. I'm unable to see the async part hitting IIS (from the IIS logs) as well. I have compared the IIS settings on both the servers and they are the same. The settings on both servers are such that the ASP page being called accepts POST requests. Could someone please suggest if I'm missing something here?
Here is the relevant extract from my code:
Expand|Select|Wrap|Line Numbers
- ' Removed some appln specific code
- Imports System.Text
- Imports System.IO
- Imports System.Net
- Imports System.Threading
- Imports Microsoft
- ' Removed some appln specific code
- Public Class clsAppmtCleanUp
- ' Removed some appln specific code
- Public Sub Schedule_PH(ByRef objSXP As Telstra.Connect.DataLayer.clsDataLayerComponent, _
- ByVal strConnectID As String, _
- ByRef objCodeDBCP As CodesDBCPLib.ILookup, _
- ByRef objErr As ConnectEventDetails)
- ' Removed some appln specific code
- Dim request As HttpWebRequest
- Dim result As IAsyncResult
- ' Removed some appln specific code
- Try
- ' Set web request properties
- strURL = 'http://localhost/INT/W6PIncomingProcessor.asp'
- request = CType(WebRequest.Create(strURL), HttpWebRequest)
- request.Credentials = System.Net.CredentialCache.DefaultCredentials
- request.ContentType = "application/x-www-form-urlencoded"
- request.Method = "POST"
- result = CType(request.BeginGetRequestStream(AddressOf RequestComplete, request), IAsyncResult)
- 'T0 Execute the Schedule_PH as one thread and RequestComplete as Different Thread
- objAllDone.WaitOne()
- End If
- Catch ex As Exception
- Finally
- ' Removed some appln specific code
- request = Nothing
- result = Nothing
- End Try
- End Sub
- Private Sub RequestComplete(ByVal asynchronousResult As IAsyncResult)
- Dim request As HttpWebRequest
- Dim postStream As Stream
- Dim byteArray As Byte()
- Try
- request = CType(asynchronousResult.AsyncState, HttpWebRequest)
- postStream = request.EndGetRequestStream(asynchronousResult)
- byteArray = Encoding.UTF8.GetBytes(g_strMessage)
- postStream.Write(byteArray, 0, g_strMessage.Length)
- objAllDone.Set()
- Catch ex As Exception
- Finally
- postStream.Close()
- End Try
- End Sub
- ' Removed some appln specific code
- End Class
Thanks,
Sindhura