WCF is supposed to be interoperable, WCF services can be accessed from microsoft & non-microsoft clients, but only Microsoft clients can access WCF callback services.
The question is: Is it possible for non-microsoft clients to access WCF callback services?
Is there any way to have an active bidirectional channel between microsoft service and non microsoft clients?
It's not possible. There the first comment say: it's .net only. http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/Q_26617678.html
Related
I have to develop a Windows Service in .NET/C#. The service must be accessible from a VB6 application.
My first idea was to host a WCF service in a Windows Service, but the VB6 application needs a wrapper for the service to be able to consume it. This is not an option.
Now I'm thinking of using sockets, but is this the best approach? If not, what would be the best design?
I would like to know what my options are, and what are the pros and cons for these options?
Any advice is much appreciated
You can host your WCF services as COM+ applications.
Once you have a WCF service hosted in COM+, you can generate a type library from the COM+ application and then reference that in your VB6 code.
Note that you'll have to have the .NET runtime installed on the machine that the WCF service is hosted on (but not on the machines that you install a COM+ proxy on if using distributed calls).
The WCF service is still an option, but you would have to ensure the WCF configured binding is interoperable (choose BasicHttpBinding for example as seen here: WCF Bindings In Depth).
On the VB6 side, you can call an existing SOAP endpoint, as described here for example: How to Consume a SOAP Web Service in VB6?
I have been reading a lot of forums regarding the use of WCF in web, most specifically, this topic: WCF with Flash tutorial, but I am really confused.
I have an existing feed server that is using WCF service. It is, with no problems, supplying real-time information to its windows applications clients. What i would like to do is to have a web application to subscribe to the feeds that i am supplying to the windows application clients. With the forum that i have read (the one i have indicated), it seems like it will be a request reply method. And i think, using that, i wouldn't be able to achieve the real-time transfer of feeds for it.
I would like to know if there is an equivalent for the callback function in web development.
I think Duplex service meets your requirement.
Please use Duplex type of WCF services.
A duplex service contract is a message exchange pattern in which both endpoints can send messages to the other independently. A duplex service, therefore, can send messages back to the client endpoint, providing event-like behavior. Duplex communication occurs when a client connects to a service and provides the service with a channel on which the service can send messages back to the client. Note that the event-like behavior of duplex services only works within a session.
Links:
http://msdn.microsoft.com/en-us/library/ms731064.aspx
http://www.c-sharpcorner.com/uploadfile/dhananjaycoder/a-simple-duplex-service-in-wcf/
http://msdn.microsoft.com/en-us/library/ms731935.aspx
You can also use web sockets which is new in WCF 4.5. Below are web socket WCF links:
http://msdn.microsoft.com/en-us/library/hh674271.aspx
We're hosting a WCF web service on a server running the latest version of Windows Server.
We have many different clients running different versions of Windows. For example, 2000, XP, Vista and a couple of Windows 7.
Can I run a program that consumes a WCF service in Windows 2000? What do I need for a WCF service to run well on the client side?
A WCF service can be consumed by any client that can communicate with SOAP. The performance of the WCF service has nothing to do with the client OS. If performance is an issue with the WCF service it is most likely a connectivity or bandwidth issue from the client to the server. How you choose to consume the service is up to you. The WCF service will continue to run on your server and perform any methods you invoke from the client on the server.
Its very hard to answer your question without knowning the requirements of the web service which is exposed on the 'latest version' of windows.
The most important part of this will be "which binding(s) is/are being exposed by the WCF service".
If this is 'basicHttp' or 'wsHttp' you will be able to communicate with this service using a .Net 2.0 client (wsdl.exe proxy). If this is not the case, it will become harder to implement.
Bottom line; a Web Service is not tied in to the development platform it has been written on. The real important part of a web service is it's contract (which is described by WSDL). If the contract exposed can be consumed by .Net 2.0 tools, you can communicate.
If they cannot, you either have to use 'extensions' (like WSE) or go the manual route which i both advise not to take!
ps; WCF != WebServices. WCF is a toolkit that can be used to build a web service or rest service. "Traditional webservices used the Basic Profile 1.1" which consist only of XML, XSD, WSDL and SOAP.
hope this helps,
I have a Wcf Data service exposing entities from Ado.net entity framework. I would like to know whethere I can use msmq messaging with my data service.
After searching on internet i could find links for using with a wcf service only.
Please provide some links with a sample.
No you cannot.
WCF Data Services is using HTTP/REST only - it cannot be used over any other protocol or with any other binding.
MSMQ is only available when you use "regular" WCF services that use the SOAP protocol for communication - that can be routed over different transport media.
REST is very tightly and intimately tied to HTTP only.
WCF supports MSMQ as a transport protocol and provides the standard MSMQ binding. Here is a link to MSDN article devoted to using MSMQ in a WCF application:
How to: Exchange Messages with WCF Endpoints and Message Queuing Applications
I using two WCF services. WCF service A is hosted in my .NET Winform application and WCF Service B is hosted on a Windows Service.
I am able to instantiate a client for WCF Service B and use the methods - i.e. call the WCF service hosted on Windows service from the .NET Winform app.
I am not able to accomplish the reverse with WCF Service A - i.e. call the WCF Service hosted on the .NET Winform application from the Windows Service. The call to the method times out.
I have used the WCF Test client from the Visual Studio command prompt and it can successfully make calls to WCF Service A.
Is this due to a security issue or something from the Windows Service?
Please advise.
Thanks in advance!
Subbu
I think the only viable approach (without the extreme of having some messaging infrastructure), is to have the service invoke operations back on your client via a WCF callback. A good example of this can be found here:
What steps do I need to take to use WCF Callbacks?
This is good for dealing with events that happen server side and allowing the client to respond to them. If events isn't what you're looking for, then your client could just register with the server (specifying the callback contract), and then the server can invoke your client at will.