[IronPython] How do I connect to a WCF service...
Matt Tomblin
matt_tomblin at hotmail.com
Tue May 6 18:19:47 CEST 2008
I have a WCF service that I wrote in C#. This is hosted as a windows service and I can happily connect to it from
a C# client by adding a service reference to the aforementioned service within the (using VS 2008) client project.
I would like to connect to the same serivce via IronPython if possible.
If I execute an IronPython script on the local machine where the service exists I am able to
use "clr" etc in to add a reference to the *.dll and utilize the service in that manner without issue.
i.e.
import clrclr.AddReferenceToFileAndPath("<somePath>\serviceName.dll")import serviceNameLibclient = serviceNameLib.service()client.doSomethingFromService()
However, my goal is to connect to the service that is running like I am doing in the C# client example (using the service reference add
functionality) and not directly to the assembly. I guess the issue is related to the fact that the service reference add invokes the svcutil
which generates all that lovely code for the C# app in order for me to simply connect the C# client to the service.
I have been experimenting in IronPython but my lack of knowledge in both Python and WCF in general has stumped me and I don't seem
to be able to find anything online that has an example of an IronPython client in this regard.
My expermintation has been along the lines of:
import clr
clr.AddReferenceToFileAndPath("<somePath>\serviceName.dll")
clr.AddReference("System")
clr.AddReference("System.ServiceModel")
import System
import System.ServiceModel
import serviceNameLib
uri = System.Uri("http://<address>:8080/serviceName")
binding = System.ServiceModel.WSHttpBinding()
host = System.ServiceModel.ServiceHost(type(serviceNameLib.service))
host.AddServiceEndpoint(serviceNameLib.Iservice, binding, uri)
The contract name 'serviceNameLib.Iservice' could not be found in the list of contracts implemented by the service 'IronPython.Runtime.Types.ReflectedType'.
The final line (in red) is the error I get. Obviously I am missing something large or perhaps it simply isn't possible the way I am trying to do it. If anyone can put me out of my coding misery it would be appreciated.
cheers
_________________________________________________________________
All new Live Search at Live.com
http://clk.atdmt.com/UKM/go/msnnkmgl0010000006ukm/direct/01/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20080506/c1b3d233/attachment.html>
More information about the Ironpython-users
mailing list