Solved

display alert in asp.net web service

Posted on 2006-11-27
11
356 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
ID: 18026009
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
ID: 18026049
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
ID: 18026090
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
Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

 
LVL 10

Author Comment

by:imrancs
ID: 18026113
i try it after that i will response back you
0
 
LVL 9

Expert Comment

by:codeclay
ID: 18026262
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
 
LVL 10

Author Comment

by:imrancs
ID: 18026932
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
ID: 18026957
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
ID: 18027033
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
ID: 18027475
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
ID: 18043605
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
ID: 18051937
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

Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

Question has a verified solution.

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

A quick way to get a menu to work on our website, is using the Menu control and assign it to a web.sitemap using SiteMapDataSource. Example of web.sitemap file: (CODE) Sample code to add to the page menu: (CODE) Running the application, we wi…
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…
This video shows how to quickly and easily add an email signature for all users on Exchange 2016. The resulting signature is applied on a server level by Exchange Online. The email signature template has been downloaded from: www.mail-signatures…

803 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