Solved

display alert in asp.net web service

Posted on 2006-11-27
11
352 Views
Last Modified: 2008-02-01
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
0
Comment
Question by:imrancs
  • 5
  • 4
  • 2
11 Comments
 
LVL 28

Expert Comment

by:mmarinov
Comment Utility
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
 
LVL 10

Author Comment

by:imrancs
Comment Utility
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
 
LVL 28

Expert Comment

by:mmarinov
Comment Utility
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
 
LVL 10

Author Comment

by:imrancs
Comment Utility
i try it after that i will response back you
0
 
LVL 9

Expert Comment

by:codeclay
Comment Utility
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
What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

 
LVL 10

Author Comment

by:imrancs
Comment Utility
Hi Codeclay

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

how to resolve it.

thanks,
ahmad
0
 
LVL 9

Expert Comment

by:codeclay
Comment Utility
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
 
LVL 10

Author Comment

by:imrancs
Comment Utility
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
 
LVL 9

Expert Comment

by:codeclay
Comment Utility
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
 
LVL 10

Author Comment

by:imrancs
Comment Utility
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
 
LVL 9

Accepted Solution

by:
codeclay earned 500 total points
Comment Utility
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

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

Sometimes in DotNetNuke module development you want to swap controls within the same module definition.  In doing this DNN (somewhat annoyingly) swaps the Skin and Container definitions to the default admin selections.  To get around this you need t…
I recently went through the process of creating a Calendar Control of events with the basis of using a database to keep track of the dates that are selectable, one requirement was to have the selected date pop-up in a simple lightbox.  At first this…
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet s…
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

772 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

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now