.NETGURU
Problems getting Python client (SOAPpy) to consume .NET web services
Messages   Related Types
This message was discovered on microsoft.public.dotnet.framework.aspnet.webservices.

Post a new message to this list...

Michael Hatmaker
I have begun experimenting with web services, and I created some
simple web services in C# and was able to install them with IIS and
create an equally simple C# client to consume them.

My next experiment was to use Python to consume these same web
services, and even though I am able to get Python to consume web
services from a variety of sources (Apache SOAP, Glue, AXIS), I cannot
get web services created with MS.NET to work. Actually, methods with
no arguments work fine, but any methods that take arguments do not
work. There is no error, it is simply that an incorrect result is
returned (i.e. my simple Add(int a, int b) web service always returns
zero).

I tried playing around with the
[SoapDocumentService(Use=SoapBindingUse.Literal,
ParameterStyle=SoapParameterStyle.Wrapped)] arguments in .NET, but I
have had no success as of yet. I don't think it's just me since I
cannot consume any of the web services on webmethods.net that are
created using MS.NET.

My Python code looks something like this:

from SOAPpy import WSDL
server = WSDL.Proxy('http://localhost/MyWebServices/FirstService.asmx?WSDL')
server.SayHello() # works correctly - just prints a hello message
server.Add(3, 4) # does not work - returns zero

Any tip that would point me in the right direction would be greatly
appreciated!
Reply to this message...
 
    
Benjamin Niemann
Michael Hatmaker wrote:

[Original message clipped]

succeeded. I think using keyword arguments in Python got me one step further, e.g.:
server.Add(a=3, b=4)
Reply to this message...
 
    
Michael Hatmaker
Nice catch! Actually, I had tried that once, but there is one more
trick to make this work (that I had since added). You must add the
following line in your C# web service (I put it before the
[WebService(Namespace=...] line):

[SoapDocumentService (Use=SoapBindingUse.Encoded)]

(and I also think you need to import the following:)

using System.Web.Services.Protocols;
using System.Web.Services.Description;
using System.Xml.Serialization;

So for anyone else that is having this problem, the solution is the
combination of the two: (1) You must ad the [SoapDocumentService
(Use=SoapBindingUse.Encoded)] line to your web service (along with all
the appropriate "using" statements shown above) and (2) you must
specify the arguments by name in the method call like "server.Add(a=3,
b=5)".

Phew. Thanks again for making me go back and take a look at that named
arguments thing. I still don't know if there is hope for using a .NET
web service that I didn't write (such as those on www.xmethods.net),
but I'll be sure to let everyone know if I find a solution.

Benjamin Niemann <Click here to reveal e-mail address> wrote in message news:<ci6ana$445$Click here to reveal e-mail address>...
[Original message clipped]

Reply to this message...
 
 
System.Web.Services.Description.SoapBindingUse
System.Web.Services.Protocols.SoapParameterStyle
System.Web.Services.WebService




ExamGuru IT Solutions - .Net Guru is owned and operated by ExamGuru, Inc., the man behind .Net Guru. If you're in the market for bespoke software or software consultancy, why not get him and his highly trained team to help? - www.examguru.net/ITCertification
Ad


Need Dot Net Interview Questions?
Ask ExamGuru, Inc. for advice and help on Passing .Net Interviews
.Net Projects
Best-of-breed application framework for .NET projects, developed by ExamGuru, Inc. and ExamGuru IT
Free .net Help
Commission ExamGuru, Inc. and his team for your next bespoke software project
FogBUGZ
The only bug tracking system carefully crafted with one goal in mind: helping teams create great software.
Awesome Tools
If you don't know about these, you're missing out... IT Certification Questions
IT Interview Questions
Free Oracle 10g Training
MCSE Boortcamp
Cisco Study Guides
Cheap Study Guides
Exact Questions
Dot Net Interview Questions
Oracle OCP
Cheap Travel
Designer Perfumes - Wholesale Prices
Free Programming Tutorials
 
ExamGuru IT Solutions - .Net Guru is owned and operated by ExamGuru, Inc., the man behind .Net Guru. If you're in the market for bespoke software or software consultancy, why not get him and his highly trained team to help? - www.examguru.net/ITCertification
 Copyright © ExamGuru, Inc. 2001-2006
Contact Us - Terms of Use - Privacy Policy - www.dot-net-guru.com - www.examguru.net - www.oraclesource.net - www.itinterviews.net - www.examguru.net/ITCertification