Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / .NET Framework / Distributed Applications / September 2005

Tip: Looking for answers? Try searching our database.

Add Web Reference Error

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Ross - 24 Sep 2005 00:58 GMT
Hi folks

I have a <WebMethod> public function called GetCountriesForCountryStart that
has a single input parameter (Varchar 50) and returns a SQLDataReader.  

The relevant code is as follows:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

<WebMethod()> Public Function GetCountriesForCountryStart(ByVal
strCountryStart As String) As SqlDataReader

       Dim cn As SqlConnection
       Dim strInfo As String
       Dim cmd As SqlCommand
       Dim prmTemp As SqlParameter
       Dim intResult As Integer
       Dim rdCountries As SqlDataReader

       strInfo =
"server=(local);uid=dbo;pwd=;database=FusionCommunityVolunteerSystem;Persist
Security Info=False;Integrated Security=SSPI"

       'open connection to DB
       Try
           cn = New SqlConnection
           cn.ConnectionString = strInfo
           cn.Open()

           'no errors in opening connection, so now create command
           'to run the SP "procCountryGetForNameStart"
           Try

               cmd = New SqlCommand

               With cmd
                   .Connection = cn
                   .CommandType = CommandType.StoredProcedure
                   .CommandText = "procCountryGetForNameStart"

                   prmTemp = .Parameters.Add("@namestart",
SqlDbType.VarChar, 50)
                   prmTemp.Direction = ParameterDirection.Input
                   prmTemp.Value = strCountryStart

                   'execute the SP - this returns 2 columns - CountryID &
CountryName
                   rdCountries = .ExecuteReader()

                   Return rdCountries

               End With
           Catch ex As Exception

           End Try

       Catch ex As Exception

       Finally
           'check to see if connection is open & if so, then close it
           If cn.State = ConnectionState.Open Then
               cn.Close()
           End If
       End Try
   End Function

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

I also have a web form that has a dropdownlist box that I want to populate
with the output from the DataReader based upon a entry in a text box on the
same form.

However, when I try to create a web reference from the project for the form
to the project that contains the method GetCountriesForCountryStart I receive
the following error:

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

"System.NullReferenceException: Object reference not set to an instance of
an object"

The stack trace seems to be pointing to an error in the above function & is
as follows:

[NullReferenceException: Object reference not set to an instance of an
object.]
  System.Xml.Serialization.XmlAttributes..ctor(ICustomAttributeProvider
provider) +105
  System.Xml.Serialization.TypeScope.GetEnumeratorElementType(Type type) +107
  System.Xml.Serialization.TypeScope.ImportTypeDesc(Type type, Boolean
canBePrimitive, MemberInfo memberInfo) +1463
  System.Xml.Serialization.TypeScope.GetTypeDesc(Type type, MemberInfo
source, Boolean directReference) +50
 
System.Xml.Serialization.XmlReflectionImporter.ImportMemberMapping(XmlReflectionMember
xmlReflectionMember, String ns, XmlReflectionMember[] xmlReflectionMembers)
+34
 
System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(XmlReflectionMember[] xmlReflectionMembers, String ns, Boolean hasWrapperElement) +300

[InvalidOperationException: There was an error reflecting
'GetCountriesForCountryStartResult'.]
 
System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(XmlReflectionMember[] xmlReflectionMembers, String ns, Boolean hasWrapperElement) +607
 
System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(String
elementName, String ns, XmlReflectionMember[] members, Boolean
hasWrapperElement) +108
 
System.Web.Services.Protocols.SoapReflector.ImportMembersMapping(XmlReflectionImporter
xmlImporter, SoapReflectionImporter soapImporter, Boolean
serviceDefaultIsEncoded, Boolean rpc, SoapBindingUse use, SoapParameterStyle
paramStyle, String elementName, String elementNamespace, Boolean nsIsDefault,
XmlReflectionMember[] members, Boolean validate) +169
 
System.Web.Services.Protocols.SoapReflector.ReflectMethod(LogicalMethodInfo
methodInfo, Boolean client, XmlReflectionImporter xmlImporter,
SoapReflectionImporter soapImporter, String defaultNs) +2927

[InvalidOperationException: Method
CountriesService.GetCountriesForCountryStart can not be reflected.]
 
System.Web.Services.Protocols.SoapReflector.ReflectMethod(LogicalMethodInfo
methodInfo, Boolean client, XmlReflectionImporter xmlImporter,
SoapReflectionImporter soapImporter, String defaultNs) +5494
  System.Web.Services.Description.SoapProtocolReflector.ReflectMethod() +130
 
System.Web.Services.Description.ProtocolReflector.ReflectBinding(ReflectedBinding reflectedBinding) +1966
  System.Web.Services.Description.ProtocolReflector.Reflect() +509
 
System.Web.Services.Description.ServiceDescriptionReflector.ReflectInternal(ProtocolReflector[] reflectors) +495
  System.Web.Services.Description.ServiceDescriptionReflector.Reflect(Type
type, String url) +112
  System.Web.Services.Protocols.DocumentationServerType..ctor(Type type,
String uri) +158
  System.Web.Services.Protocols.DocumentationServerProtocol.Initialize() +269
  System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type,
HttpContext context, HttpRequest request, HttpResponse response, Boolean&
abortProcessing) +106

[InvalidOperationException: Unable to handle request.]
  System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type,
HttpContext context, HttpRequest request, HttpResponse response, Boolean&
abortProcessing) +205
 
System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type
type, HttpContext context, HttpRequest request, HttpResponse response) +82

[InvalidOperationException: Failed to handle request.]
 
System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type
type, HttpContext context, HttpRequest request, HttpResponse response) +154
 
System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext
context, String verb, String url, String filePath) +94
  System.Web.HttpApplication.MapHttpHandler(HttpContext context, String
requestType, String path, String pathTranslated, Boolean useAppConfig) +698
 
System.Web.MapHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute() +95

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

So, I was wondering if there is something fundamentally wrong with my whole
approach, or just something wrong with the code for the procedure or
something else?

Kind regards

Ross Petersen
CT - 24 Sep 2005 07:46 GMT
Ross,

You will not have this working, because the DataReader needs an open
connection when you retrieve the items in it. Once it's returned from the
Web service, the Web service forgets all about it and the connection is
closed. You should consider using the DataSet or if you're using VB 2005, a
DataTable to return the rows, as these classes are serializable.

Signature

Carsten Thomsen
Enterprise Development with VS .NET, UML, AND MSF
http://www.apress.com/book/bookDisplay.html?bID=105
Communities - http://community.integratedsolutions.dk

> Hi folks
>
[quoted text clipped - 184 lines]
>
> Ross Petersen
Ross - 24 Sep 2005 12:23 GMT
Thanks Carsten

I'll give the dataset a go.

Kind regards

Ross Petersen

> Ross,
>
[quoted text clipped - 192 lines]
> >
> > Ross Petersen

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.