Hi all
I need to configure and query a Cisco router from my .NET application, and I need to do it by way of the Cisco WSMA web services interface.
These services are exposed over HTTP (in my case), and use SOAP 1.2 to enclose requests and responses (schema here). So a call may look like this (example from the Wikipedia article):
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<request correlator="4.7" xmlns="urn:cisco:wsma-config" >
<configApply details="all">
<config-data>
<cli-config-data>
<cmd>access-list 1 permit any</cmd>
<cmd>ip hst foo 1.1.1.1</cmd>
<cmd>no cns exec 80 </cmd>
</cli-config-data>
</config-data>
</configApply>
</request>
</SOAP:Body>
</SOAP:Envelope>]]>]]>
This is all very cool, of course (certainly beats mucking around with telnet - AND it supports atomic transactions - all succeed or all fail - whereas CLI doesn't).
But up until now, I have been living in a comfortable .NET bubble where web services emit WSDL and I can build proxies in the client and things just work (or not ;-). There is no WSDL available, as far as I have been able to work out, and I don't quite see how to go about this.
- How do I configure WCF for something like this (set up a basicHttpBinding and a client endpoint)?
- How do I turn these schemas into contracts? By hand?
- Can SvcUtil do anything useful with those schemas?
- If I can create contracts somehow, does that mean I can generate proxies to work with, or will I have to work at a lower level?
I know as soon as I get some momentum, I'll get along fine. Can someone with similar experiences be a star and give me a few bullet points on how to go about this? Perhaps point me to some relevant blog post?