?
Solved

how to fix web method error: Thread was being aborted: HttpContext.Current.Response.[End]()

Posted on 2012-03-17
3
Medium Priority
?
2,781 Views
Last Modified: 2012-04-10
hi,

I have web method to download csv file (from datatable) using jquery ajax

now everything is fine, but when the code reached to line:
HttpContext.Current.Response.[End]()
its exiting the method, and returning this error message in firebug: Thread was being aborted.

I tried to remove this line, but I didn't get the file to be saved,

here is my code:

    <WebMethod()> _
    Public Shared Function ExportReportAjax(ByVal ExportType As Integer, ByVal DataToExport As String) As String

        Dim clientID As String = HttpContext.Current.Session("ClientID")
        Dim strCheck As String = "Select Client_ClassID from dbo.CTS_Clients where Client_ID= " & clientID

        Dim dsCheck As DataSet = clsDB.getData(strCheck)

        Dim response As HttpResponse = HttpContext.Current.Response

        ExportToSpreadsheet(dsCheck.Tables(0), "asfas")

        Return ""
    End Function

    Public Shared Sub ExportToSpreadsheet(ByVal table As DataTable, ByVal name As String)
        Dim context As HttpContext = HttpContext.Current
        context.Response.Clear()

        For Each column As DataColumn In table.Columns
            context.Response.Write(column.ColumnName + ";")
        Next

        context.Response.Write(Environment.NewLine)

        For Each row As DataRow In table.Rows
            For i As Integer = 0 To table.Columns.Count - 1
                context.Response.Write(row(i).ToString().Replace(";", String.Empty) & ";")
            Next
            context.Response.Write(Environment.NewLine)
        Next

        context.Response.ContentType = "text/csv"
        context.Response.AppendHeader("Content-Disposition", "attachment; filename=" & name & ".csv")
        context.Response.[End]()
    End Sub

Open in new window

0
Comment
Question by:njgroup
3 Comments
 
LVL 18

Expert Comment

by:Rajar Ahmed
ID: 37734122
'While using update panel , Response.end makes this problem . You can skip that exception by the below way .

Public Shared Sub ExportToSpreadsheet(ByVal table As DataTable, ByVal name As String)
try
        Dim context As HttpContext = HttpContext.Current
        context.Response.Clear()

        For Each column As DataColumn In table.Columns
            context.Response.Write(column.ColumnName + ";")
        Next

        context.Response.Write(Environment.NewLine)

        For Each row As DataRow In table.Rows
            For i As Integer = 0 To table.Columns.Count - 1
                context.Response.Write(row(i).ToString().Replace(";", String.Empty) & ";")
            Next
            context.Response.Write(Environment.NewLine)
        Next

        context.Response.ContentType = "text/csv"
        context.Response.AppendHeader("Content-Disposition", "attachment; filename=" & name & ".csv")
        context.Response.[End]()
return ""
catch ex as exception
 if (instr(lcase(ex.message),"thread was being aborted") then
return "" 
end if
end try
end sub
0
 

Author Comment

by:njgroup
ID: 37734148
same error, even in try catch, the error is thrown !
0
 
LVL 83

Accepted Solution

by:
CodeCruiser earned 2000 total points
ID: 37734950
0

Featured Post

2018 Annual Membership Survey

Here at Experts Exchange, we strive to give members the best experience. Help us improve the site by taking this survey today! (Bonus: Be entered to win a great tech prize for participating!)

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

jQuery is a JavaScript library that greatly simplifies JavaScript programming. AJAX is an acronym formed from "Asynchronous JavaScript and XML."  AJAX refers to any communication between client and server, when the human client does not observe a…
Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
Kernel Data Recovery is a renowned Data Recovery solution provider which offers wide range of softwares for both enterprise and home users with its cost-effective solutions. Let's have a quick overview of the journey and data recovery tools range he…
There may be issues when you are trying to access Outlook or send & receive emails or due to Outlook crash which leads to corrupt or damaged PST file. To eliminate the corruption from your PST file, you need to repair the corrupt Outlook PST file. U…
Suggested Courses

588 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question