Xml Web Services response Problem

fony11

New member
Joined
Jul 17, 2005
Messages
1
Programming Experience
1-3
Well, i've created a web service in which the webmethod returns an array of String, when i access the web service it shows the values inside the array of String in the soap message, but when i access the array of String in the client web form it gives a Null Exception. The code for both the web service method and client code is as follows:

This is the web service method which returns an array of String


<WebMethod(EnableSession:=True)> _

Public Function SearchBySubject(ByVal subject As String) As String()

If isAuthenticated() Then

Dim bookTitles() As Object = PClient.ProxySearchBySubject(subject)

Dim count As Integer

count = bookTitles.Length

Dim titles(count) As String

Dim n As Integer

For n = 0 To count - 1

titles(n) = CType(bookTitles(n), String)

Next

Return titles

End If

End Function




And this is the code in the client web form which calls the web service method



Dim srchItem, srchValue As String

Dim title(2) As String

Dim matches As Integer

srchItem = SearchList.SelectedValue

srchValue = SearchTxt.Text()

If srchItem.ToLower.Equals("subject") Then

title = service.SearchBySubject(srchValue)

End If



DataGrid1.DataSource = title

Me.DataBind()

errorLbl.Text = title(0)



When I debug and run it , the DataGrid is empty and it gives a Null Exception on the line

errorLbl.Text = title(0)

I will appreciate if any one can help me.
Thanx & Regards,
Fony
 
hi,

I have tried Similar Code like yours with Simple format,
I have added 2 extra things 1. PreAuthenticate = true and Credentials to Default. It returned me the Array. Please see if you are missing something.

VB.NET:
[size=2]<WebMethod(EnableSession:=[/size][size=2][color=#0000ff]True[/color][/size][size=2])> _

[/size][size=2][color=#0000ff]Public[/color][/size][size=2] [/size][size=2][color=#0000ff]Function[/color][/size][size=2] SearchBySubject([/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] subject [/size][size=2][color=#0000ff]As[/color][/size][size=2] [/size][size=2][color=#0000ff]String[/color][/size][size=2]) [/size][size=2][color=#0000ff]As[/color][/size][size=2] [/size][size=2][color=#0000ff]String[/color][/size][size=2]()

[/size][size=2][color=#0000ff]Dim[/color][/size][size=2] bookTitles(2) [/size][size=2][color=#0000ff]As[/color][/size][size=2] [/size][size=2][color=#0000ff]Object

[/color][/size][size=2]bookTitles(0) = [/size][size=2][color=#ff00ff]"test"

[/color][/size][size=2]bookTitles(1) = [/size][size=2][color=#ff00ff]"test1"

[/color][/size][size=2]bookTitles(2) = [/size][size=2][color=#ff00ff]"test2"

[/color][/size][size=2][/size][size=2][color=#0000ff]Dim[/color][/size][size=2] count [/size][size=2][color=#0000ff]As[/color][/size][size=2] [/size][size=2][color=#0000ff]Integer

[/color][/size][size=2]count = bookTitles.Length

[/size][size=2][color=#0000ff]Dim[/color][/size][size=2] titles(count) [/size][size=2][color=#0000ff]As[/color][/size][size=2] [/size][size=2][color=#0000ff]String

[/color][/size][size=2][/size][size=2][color=#0000ff]Dim[/color][/size][size=2] n [/size][size=2][color=#0000ff]As[/color][/size][size=2] [/size][size=2][color=#0000ff]Integer

[/color][/size][size=2][/size][size=2][color=#0000ff]For[/color][/size][size=2] n = 0 [/size][size=2][color=#0000ff]To[/color][/size][size=2] count - 1

titles(n) = [/size][size=2][color=#0000ff]CType[/color][/size][size=2](bookTitles(n), [/size][size=2][color=#0000ff]String[/color][/size][size=2])

[/size][size=2][color=#0000ff]Next

[/color][/size][size=2][/size][size=2][color=#0000ff]Return[/color][/size][size=2] titles

[/size][size=2][color=#0000ff]End[/color][/size][size=2] [/size][size=2][color=#0000ff]Function[/color][/size]
[color=#0000ff][/color] 
[size=2][color=#0000ff][Code][/color][/size]
[size=2][color=#0000ff][/color][/size] 
[size=2][color=#0000ff][/color][/size] 
[size=2][color=#0000ff]Client [/color][/size]
[color=#0000ff][Code][/color]
[color=#0000ff][/color] 
[color=#0000ff][size=2][/size][size=2][color=#0000ff]Sub[/color][/size][size=2] CallWebservice()

[/size][size=2][color=#0000ff]Dim[/color][/size][size=2] srchItem, srchValue [/size][size=2][color=#0000ff]As[/color][/size][size=2] [/size][size=2][color=#0000ff]String

[/color][/size][size=2][/size][size=2][color=#0000ff]Dim[/color][/size][size=2] t [/size][size=2][color=#0000ff]As[/color][/size][size=2] [/size][size=2][color=#0000ff]New[/color][/size][size=2] localhost.StringArray

t.PreAuthenticate = [/size][size=2][color=#0000ff]True

[/color][/size][size=2]t.Credentials = System.Net.CredentialCache.DefaultCredentials

[/size][size=2][color=#0000ff]Dim[/color][/size][size=2] title(2) [/size][size=2][color=#0000ff]As[/color][/size][size=2] [/size][size=2][color=#0000ff]String

[/color][/size][size=2][/size][size=2][color=#0000ff]Dim[/color][/size][size=2] matches [/size][size=2][color=#0000ff]As[/color][/size][size=2] [/size][size=2][color=#0000ff]Integer

[/color][/size][size=2]

title = t.SearchBySubject(srchValue)

[/size][size=2][color=#0000ff]Dim[/color][/size][size=2] n [/size][size=2][color=#0000ff]As[/color][/size][size=2] [/size][size=2][color=#0000ff]Integer[/color][/size][size=2] = 0

[/size][size=2][color=#0000ff]While[/color][/size][size=2] n < title.Length

Console.WriteLine(title(n))

n = n + 1

[/size][size=2][color=#0000ff]End[/color][/size][size=2] [/size][size=2][color=#0000ff]While

 

[/color][/size][size=2][/size][size=2][color=#0000ff]End[/color][/size][size=2] [/size][size=2][color=#0000ff]Sub

[/color][/size][/color][color=#0000ff][/color] 
[color=#0000ff][Code][/color]
[size=2][color=#0000ff][/color][/size] 
[size=2][color=#0000ff]Thanks [/color][/size]
[size=2][color=#0000ff]          Jay[/color][/size]
[size=2][color=#0000ff] 
[/color][/size]
 
Back
Top