Query on typing SoapService methods : Prev: Confused WS, SOA

Tech-Archive recommends: Speed Up your PC by fixing your registry

From: Jules (Roseanna80_at_hotmail.com)
Date: 09/30/04


Date: 30 Sep 2004 16:47:48 -0700

Hervey

Many thanks for your helpful posts,and introducing me to this cool
stuff.

As you recommended using SoapService and [SoapMethod]s, instead of
SoapReceiver, does now allow me to query Myservice.ashx?wsdl to return
my wsdl desription. I can also Add Web Reference from visual studio
client, on another machine to create some proxy code classes.

However, my wsdl on my initial attempts so far seems to have generated
rather loosely type message types such that my SoapService method:

public void AcceptSubscription(SoapEnvelope env)

becomes to following Wsdl:

<s:complexType name="AnySchema">
        <s:sequence>
          <s:any minOccurs="0" maxOccurs="unbounded"
processContents="lax" />
        </s:sequence>
 
<message name="AcceptSubscriptionMessageIn">
    <part name="data" type="s0:AnySchema" />
</message>

Which in the (VS Add Web Reference) proxy generated becomes

AcceptSubscription(XMLElement[] data)

I am not quite sure how these proxy methods are really helping me,
beyond simply using SoapClient. I have been reading various MSDN WSE
articles, and I need to read and understand a lot more on how I can
specify my SOA services acros the Internet to third parties. My
feeling is that simply receiving SoapEnvelope, cannot in itself help
define any types. Since it is a message after all, and not a parameter
list. So I guess this means that when I go towards SOA message based
paradigm, which consists of exchanging Soap envelopes, I have do more
of my own specification of what my 'services do'. I cannot really rely
upon auto generated wsdl, to specify my services, and I do need to
provide explicit support to my client developers as to what my
services are doing to their soap bodies.

I guess I have become rather lazy with the Microsoft web service RPC
based paradigm, where I can simply browse for a remote service, Add
Web Reference and develop Client code against generated tightly typed
proxy methods. Which is sort of where I would really like to be with
SOA messaging.

Many Thanks for helping me understand WSE and SOAP processing.

Jules

"Hervey Wilson [MSFT]" <herveyw.nospam@nospam.microsoft.com> wrote in message news:<OKZ0AeppEHA.1816@TK2MSFTNGP09.phx.gbl>...
> Jules wrote:
> > Many Thanks Hervey
> >
> > Another query is how I can wsdl query a WebHandler based service,
> > based upon ashx files. I had hoped that I could still ?wsdl, or use
> > Add Web Reference against ashx file, but its only expecting asmx
> > files. Which is a shame, because discovering http services and
> > SoapReceiver message level is the desirable combination. Am I missing
> > something.
> >
>
> SoapReceiver itself does not directly produce WSDL output, however
> SoapService can generate this automatically. You can override the
> GetDescription method on SoapReceiver to return a WSDL document if you
> need to.
>
> The WseWsdl2 command line tool in the product can issue the ?WSDL query
> to these services and generate a WSE-enabled proxy for them. This should
> work on all transports in the product.



Relevant Pages

  • Re: web service
    ... Can you send a screenshot of the "Add Web Reference" dialog box after you ... I have just tried that web service you specified, and got the WSDL displayed ... ok and was able to generate a proxy class in C# just fine. ...
    (microsoft.public.cert.exam.mcad)
  • Re: Need some help reading instructions
    ... Mr. Rogers would have you edit the generated proxy file, in the hopes that nobody will ever do an "Update Web Reference" command and wipe out your changes. ... Like the original poster in the old thread, I need to return a collection class from the web service, but when I create a client and add a web reference to it, the service returns an object array rather than a collection class. ... This causes ASP.NET to create a WSDL and return it to the client. ...
    (microsoft.public.dotnet.framework.aspnet.webservices)
  • Re: Webservices through firewall
    ... > Still talking about WS proxy. ... I don't know how do get that proxy> (neither wsdl, neither add web reference) just because the proxy (internet> proxy) blocks the connection. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: SOAP - howto?
    ... > passing it the URL of the WSDL file to create a proxy class you can call. ... then you can add a web reference (right click on the ...
    (microsoft.public.dotnet.languages.csharp)
  • RE: Consuming Web Service without Web Reference
    ... Eventhough I extracted schema from WSDL iam not able to call the web service. ... Generally, when you add a web reference, the orchestration web port contains ... You've said you've created a proxy class that is added as a reference to the ...
    (microsoft.public.biztalk.general)