display alert in asp.net web service

Hi Experts

I want to display alert in asp.net web service how can i do this currently i am displaying alert by following code but it generates error "This is an unexpected token. The expected token is 'QUOTE'."

Dim str As String = "<script langugae=javascript> alert('Templates have been updated.'); </script>"
System.Web.HttpContext.Current.Response.Write(str)

it very urgent.

Thanks,
Ahmad
LVL 10
imrancsAsked:
Who is Participating?
 
codeclayConnect With a Mentor Commented:
Lets change the way you call the web service . Use threading .

 Dim wHandle() As Threading.WaitHandle = {New AutoResetEvent(False), New AutoResetEvent(False)}
        ThreadPool.QueueUserWorkItem(New WaitCallback(AddressOf Method1), wHandle(0))
        ThreadPool.QueueUserWorkItem(New WaitCallback(AddressOf Method2), wHandle(1))
        WaitHandle.WaitAll(wHandle)
 Private Sub Method1(ByVal state As Object)
        Dim arg As AutoResetEvent = CType(state, AutoResetEvent)
        Dim objSer As New localhost.Service
        Dim strText As String = objSer.GetStringAndShowAlert("aaa")
        Response.Write(strText)
        Response.Flush()
        arg.Set()
    End Sub
    Private Sub Method2(ByVal state As Object)
        Dim arg As AutoResetEvent = CType(state, AutoResetEvent)
        Dim objSer As New localhost.Service
        Dim strText As String = objSer.GetStringAndShowAlert("aaa")
        Response.Write(strText)
        Response.Flush()
        arg.Set()
    End Sub


Change the GetStringAndShowAlert method in the webservice as follows
 Private Function GetStringAndShowAlert(ByVal strAlert As String) As String

        Dim sScript As System.Text.StringBuilder
        sScript = New System.Text.StringBuilder()
        sScript.Append("<script LANGUAGE='javascript'> ")
        sScript.Append("alert('" + strAlert  +"');")
        sScript.Append("</script>")
        GetStringAndShowAlert= sScript.ToString()

 End Function
0
 
mmarinovCommented:
Why do you want to display in the web service? I think it is more common to think in the direction of displaing the alert in the application that requests the web service

regards
0
 
imrancsAuthor Commented:
Hi mmarinov

I run some store procedure in web service which take 5 to 10 minutes so after finish it i need to display some message to client. these procedure calls in thread so user can do some other task during the process of these procedure.

thanks,
ahmad
0
Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

 
mmarinovCommented:
why don't you use async requests to the web service. (using async pages in 2.0 or using ajax in 1.1 and 2.0)

check these links
http://msdn.microsoft.com/msdnmag/issues/05/10/WickedCode/
http://www.informit.com/articles/article.asp?p=174363&seqNum=2&rl=1
http://www.theserverside.net/discussions/thread.tss?thread_id=35834

regards
0
 
imrancsAuthor Commented:
i try it after that i will response back you
0
 
codeclayCommented:
Try this

    <WebMethod()> _
    Public Sub GetStringAndShowAlert(ByVal strAlert As String)

        Dim sScript As System.Text.StringBuilder
        sScript = New System.Text.StringBuilder()
        sScript.Append("<HTML><HEAD> ")
        sScript.Append("<script LANGUAGE='javascript'> ")
        sScript.Append("function ShowMessage() { ")
        sScript.Append("alert('This is the input string: " + strAlert + "');")
        sScript.Append("}")
        sScript.Append("</script>")
        sScript.Append("</HEAD>")
        sScript.Append("<BODY onload=ShowMessage();>")
        sScript.Append("</BODY></HTML>")
        System.Web.HttpContext.Current.Response.Write(sScript.ToString())
    End Sub
0
 
imrancsAuthor Commented:
Hi Codeclay

I am getting following error.
The <HTML> tag from namespace  is not expected.

how to resolve it.

thanks,
ahmad
0
 
codeclayCommented:
It works fine for me . Did u try using the webmethod mentioned above in a new webservice ? Also could you post your code here?
0
 
imrancsAuthor Commented:
it works fine in web service but when i call it from the application then it generates error

Here are code
Calling from Application
        Dim obj As New localhost.TemplateService
        Try
            obj.GetStringAndShowAlert("Test")
        Catch ex As Exception
        End Try

Web Service Code
Imports System.Web.Services
'Imports System.Threading

<System.Web.Services.WebService(Namespace:="http://tempuri.org/TemplateService/TemplateService")> _
Public Class TemplateService
    Inherits System.Web.Services.WebService

    'Private objThread As Thread
    'Dim obj As Object
    'Dim objApp As Object
    'Dim DataBaseName As String
    'Dim xmlFileName As String = "../Databases.xml"
    'Dim BContract, BTemplate As Boolean
    'Dim SPage As Integer
#Region " Web Services Designer Generated Code "

    Public Sub New()
        MyBase.New()

        'This call is required by the Web Services Designer.
        InitializeComponent()

        'Add your own initialization code after the InitializeComponent() call

    End Sub

    'Required by the Web Services Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Web Services Designer
    'It can be modified using the Web Services Designer.  
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        components = New System.ComponentModel.Container
    End Sub

    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        'CODEGEN: This procedure is required by the Web Services Designer
        'Do not modify it using the code editor.
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

#End Region

    ' WEB SERVICE EXAMPLE
    ' The HelloWorld() example service returns the string Hello World.
    ' To build, uncomment the following lines then save and build the project.
    ' To test this web service, ensure that the .asmx file is the start page
    ' and press F5.
    '
    '<WebMethod()> _
    '  <WebMethod()> _
    ' Public Sub UpdateAllDetailsSection(ByRef DBName As String, ByVal BIsTemplate As Boolean, ByVal BIsContract As Boolean)


    '      BContract = BIsContract
    '      BTemplate = BIsTemplate
    '      DataBaseName = DBName

    '      obj = System.Web.HttpContext.Current.Server.MapPath(xmlFileName)
    '      Me.objThread = New Thread(AddressOf StartThread)
    '      objThread.Name = "Thread_1"
    '      Me.objThread.IsBackground = True
    '      Me.objThread.Start()
    '      'Dim str As String = "<script langugae=javascript> alert('Templates have been updated.'); </script>"
    '      'System.Web.HttpContext.Current.Response.Write(str)

    '  End Sub

    '  <WebMethod()> _
    'Public Sub UpdateAllPagesSection(ByRef DBName As String, ByVal BIsTemplate As Boolean, ByVal BIsContract As Boolean, ByVal SummaryPage As Integer)
    '      SPage = SummaryPage
    '      BContract = BIsContract
    '      BTemplate = BIsTemplate
    '      DataBaseName = DBName
    '      obj = System.Web.HttpContext.Current.Server.MapPath(xmlFileName)
    '      Me.objThread = New Thread(AddressOf StartDetailThread)
    '      objThread.Name = "Thread_1"
    '      Me.objThread.IsBackground = True
    '      Me.objThread.Start()
    '      'Dim str As String = "<script langugae=javascript> alert('Templates have been updated.'); </script>"
    '      'System.Web.HttpContext.Current.Response.Write(str)

    '  End Sub

    <WebMethod()> _
    Public Sub GetStringAndShowAlert(ByVal strAlert As String)
        Dim sScript As System.Text.StringBuilder
        sScript = New System.Text.StringBuilder
        sScript.Append("<HTML><HEAD> ")
        sScript.Append("<script LANGUAGE='javascript'> ")
        sScript.Append("function ShowMessage() { ")
        sScript.Append("alert('This is the input string: " + strAlert + "');")
        sScript.Append("}")
        sScript.Append("</script>")
        sScript.Append("</HEAD>")
        sScript.Append("<BODY onload=ShowMessage();>")
        sScript.Append("</BODY></HTML>")
        System.Web.HttpContext.Current.Response.Write(sScript.ToString())
    End Sub

    'Public Sub StartDetailThread()
    '    Template.UpdateAllPages(DataBaseName, obj, BTemplate, BContract, SPage)

    '    Me.objThread.Abort()

    'End Sub

    'Public Sub StartThread()
    '    Template.UpdateAllDetails(DataBaseName, obj, BTemplate, BContract)

    '    Me.objThread.Abort()

    'End Sub
   

End Class
0
 
codeclayCommented:
Modify the GetStringAnd ShowAlert method as follows
 Private Function GetStringAndShowAlert(ByVal strAlert As String) As String
        Dim sScript As System.Text.StringBuilder
        sScript = New System.Text.StringBuilder()
        sScript.Append("<HTML><HEAD> ")
        sScript.Append("<script LANGUAGE='javascript'> ")
        sScript.Append("function ShowMessage() { ")
        sScript.Append("alert('This is the input string:" + strAlert + "');")
        sScript.Append("}")
        sScript.Append("</script>")
        sScript.Append("</HEAD>")
        sScript.Append("<BODY onload=ShowMessage();>")
        sScript.Append("</BODY></HTML>")
        GetStringAndShowAlert= sScript.ToString()
    End Function

From the application where you call this ,

 Dim obj As New localhost.TemplateService
        Try
            Dim strText As String = obj.GetStringAndShowAlert("Test")
            Response.Write(strText)
        Catch ex As Exception
        End Try

0
 
imrancsAuthor Commented:
Hi Codeclay

it works fine if not put to in thread if put it into thread then it does not work fine. have you any solution for this?

thanks,
ahmad
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.