I have developed a WCF service and hosted in IIS, I need that this service can be consumed by web applications and for one desktop application, but this desktop application was made in .net 2.0, so i add an asmx extension in order to can add the web reference to the desktop app. When I run the app in the same machine that is hosting the WCF service, it works fine, so I installed the system in one client for beta testing. When the client run in the server all requests made to the web services works fine, but this client has 2 remote stations, which have to consume as well the WCF service, now this is the issue, some times the request is not arriving to the WCF, I already added exceptions to the antivirus and firewall, so there is nothing blocking the communication between the server and the client stations.
I'm wondering if all the problem is because an incompatibility issue between the asmx extension and WCF service, but I don't find any after hours googling.
I appreciate any advice about this, the client is a beta, but is pressing hard to get a solucion ASAP.
Related
I want to use Duplex WCF between the host (a desktop app) and a web site, where the web site is the client and the desktop app runs the WCF host.
The user should click on a button on the web site, it does an ajax call to an asmx web service which in turn should send the command to the host (which then talks to a bunch of other desktop apps; but I've learned how to do this last part from all the tutorials I found online)
I essentially want two interfaces: one between the host and a bunch of other desktop clients (which I already know how to do) and one between the host and a website, which at this point only needs to receive a message/command from the website (this is the part I need help on).
I've seen examples of Duplex WCF between the host and the client where the client is a desktop application (GUI), but not where the client is a website/web service.
How do I go about doing this?
I need simple way of communication between 2 desktop application over local network. Client application have to call server and trigger command execution on server desktop. RPC is the old way of doing that. Looks like WCF is new way.
If WCF, does it require IIS on the computer that is running server application?
Where I can find WCF sample code to follow?
For two Windows applications, you're probably going to want a self-hosted WCF service using Net TCP binding.
Self-hosted means the service is contained in your application (could be a desktop app or Windows service) - no IIS required. Just about any kind of binding will work, but Net TCP binding is ideal for .NET applications that only talk to other .NET applications over a LAN.
Here's a sample from MS on self-hosting.
You can host WCF in various ways - IIS, windows service, console application.
So no, you do not need IIS installed unless you want to host it on IIS.
Here are some examples on how to do it
Host a WCF Service in a Managed Windows Service
Host WCF in a Windows Service Using TCP
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,
The team I work with has recently migrated from a self hosted setup to IIS hosting of thier web services. The migration went 'smoothly' however we are now seeing some funny behaviour on our server.
If we make a simple request call from our client to our server to get some data from our DB everything works as expected. If we make a call from our client to our server and then the server makes a call to a 3rd party service (hosted off site) then we're seeing a massive increase in response time. A call like this used to take less than a few seconds, since migrating to IIS hosting the response time is over a few minutes.
Has anyone seen this behaviour before? Is it possible that we're having issues with credentials between the IIS hosted server and the 3rd party service?
As long as the bindings haven't changed and you are using the same service identity (i.e. Windows account) then you should get the same performance.
Have you checked whether the service is using static variables and/or multi-threading logic? You could be having resource contention problems with the proxy to the 3rd party service. You'll need to provide more detail about service to get a more specific recommendation.
We have a 2.0 Web Service proxy generated for a WCF Service. This service required Basic authentication, but periodically we experience problems that the proxy cannot connect to the Server.
The application is installed on a cluster and referencing a cluster that holds the WCF Service.
Anyone experience this problem already?
Could be that the service is only installed / working on one server in the cluster. Therefore, sometimes it works and sometimes it does not, depending on which machine you hit.
Apparantly it has to do with the setup of the environment. All the machines are virtual and the errors occurs depending on the host they are running on. I also was able to reproduce it with the WCF Proxy as well by switching on/off VM's.
thanks for the answers
You may want to consider deploying an ASMX service backed by the WCF service class. This gives you a classic XML webservices facade to work with.