driekwartappel
New member
- Joined
- Dec 14, 2009
- Messages
- 2
- Programming Experience
- 1-3
Hi
On my windows application form I have these controls:
ProgressBar1 (progressbar)
lbl_message (label)
btn_submit (button)
btn_cancel (button)
when the btn_submit is clicked, the progressbar is populated and a file is FTP'd to its destination.
It is working fine, but sometimes when I click cancel to stop the FTP, I get the error :
"WebException was unhandled. The request was aborted: The request was canceled."
Below is my code and the ful error. Can someone please help!
'---------HERE IS THE COMPLETE ERROR---------------
System.Net.WebException was unhandled
Message="The request was aborted: The request was canceled."
Source="System"
StackTrace:
at System.Net.FtpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.FtpDataStream.System.Net.ICloseEx.CloseEx(CloseExState closeState)
at System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result)
at System.Net.WebClient.DownloadBitsResponseCallback(IAsyncResult result)
at System.Net.FtpDataStream.Dispose(Boolean disposing)
at System.IO.Stream.Close()
at System.Net.WebClient.UploadBitsState.Close()
at System.Net.WebClient.UploadBitsWriteCallback(IAsyncResult result)
at System.Net.LazyAsyncResult.Complete(IntPtr userToken)
at System.Net.ContextAwareResult.CompleteCallback(Object state)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Net.ContextAwareResult.Complete(IntPtr userToken)
at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken)
at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)
InnerException:
------------------------------
On my windows application form I have these controls:
ProgressBar1 (progressbar)
lbl_message (label)
btn_submit (button)
btn_cancel (button)
when the btn_submit is clicked, the progressbar is populated and a file is FTP'd to its destination.
It is working fine, but sometimes when I click cancel to stop the FTP, I get the error :
"WebException was unhandled. The request was aborted: The request was canceled."
Below is my code and the ful error. Can someone please help!
VB.NET:
Imports System.ComponentModel
Imports System.Net
Public Class Form3
Public client As New System.Net.WebClient()
Private Sub Form3(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
ProgressBar1.Visible = False
ProgressBar1.Value = 0
lbl_message.Text = ""
btn_submit.Enabled = True
End Sub
Private Sub btn_submit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_submit.Click
btn_submit.Enabled = False
ProgressBar1.Visible = True
btn_cancel.Text = "Cancel"
lbl_message.Text = ""
Try
With client
.Proxy = Nothing
.Credentials = New NetworkCredential("username123", "password123")
.UploadFileAsync(New Uri("ftp://test.com/temp.msg"), "C:\grabrelay\temp.msg")
AddHandler client.UploadProgressChanged, AddressOf UpdateProgressBar
AddHandler client.UploadFileCompleted, AddressOf OnFileuploadCompleted
End With
Catch ex As Exception
MsgBox("Connection Failed: " & ex.Message)
Me.Close()
End Try
End Sub
Sub UpdateProgressBar(ByVal sender As Object, ByVal e As UploadProgressChangedEventArgs)
If ProgressBar1.InvokeRequired Then
ProgressBar1.Invoke(New UploadProgressChangedEventHandler(AddressOf UpdateProgressBar), sender, e)
Exit Sub
Else
ProgressBar1.Value = CInt(ProgressBar1.Minimum + ((ProgressBar1.Maximum - ProgressBar1.Minimum) * e.ProgressPercentage) / 100)
End If
If lbl_message.InvokeRequired Then
lbl_message.Invoke(New UploadProgressChangedEventHandler(AddressOf UpdateProgressBar), sender, e)
Exit Sub
Else
lbl_message.Text = "File(s) busy being sent..."
End If
End Sub
Private Sub OnFileuploadCompleted(ByVal sender As Object, ByVal e As UploadFileCompletedEventArgs)
If e.Cancelled Then
MsgBox("canceled e")
ElseIf Not e.Error Is Nothing Then
MsgBox("An error occur")
Me.Close()
Else
RemoveHandler client.UploadProgressChanged, AddressOf UpdateProgressBar
RemoveHandler client.UploadFileCompleted, AddressOf OnFileuploadCompleted
If lbl_message.InvokeRequired Then
lbl_message.Invoke(New UploadProgressChangedEventHandler(AddressOf UpdateProgressBar), sender, e)
Exit Sub
Else
lbl_message.Text = "File sent successfully."
End If
Me.Close()
End If
End Sub
Private Sub btn_cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_cancel.Click
RemoveHandler client.UploadProgressChanged, AddressOf UpdateProgressBar
RemoveHandler client.UploadFileCompleted, AddressOf OnFileuploadCompleted
client.CancelAsync()
MsgBox("Canceled")
Me.Close()
End Sub
End Class
'---------HERE IS THE COMPLETE ERROR---------------
System.Net.WebException was unhandled
Message="The request was aborted: The request was canceled."
Source="System"
StackTrace:
at System.Net.FtpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.FtpDataStream.System.Net.ICloseEx.CloseEx(CloseExState closeState)
at System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result)
at System.Net.WebClient.DownloadBitsResponseCallback(IAsyncResult result)
at System.Net.FtpDataStream.Dispose(Boolean disposing)
at System.IO.Stream.Close()
at System.Net.WebClient.UploadBitsState.Close()
at System.Net.WebClient.UploadBitsWriteCallback(IAsyncResult result)
at System.Net.LazyAsyncResult.Complete(IntPtr userToken)
at System.Net.ContextAwareResult.CompleteCallback(Object state)
at System.Threading.ExecutionContext.runTryCode(Object userData)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Net.ContextAwareResult.Complete(IntPtr userToken)
at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken)
at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)
InnerException:
------------------------------