WCF connection issue in windows xp - c#

We have WCF service hosted as windows service in System1 [used NETTCP binding]
And we have client in system2 which has windows xp. It is working fine.
Issue: We have upgraded system1 to windows server 2016 and wcf service running as windows service. But from Windows xp, client couldnt even connect to WCF service.
Only in XP machine am facing issue:
"system.servicemodel.channels.servicechannel cannot be used for communication because it is in the faulted state"
Any configuration work in windows XP to support WCF in windows server 2016??
Kindly advise

Found this in msdn forum (it´s a bit older):
We have now found the problem. The application are starting some
services that WCF demands, the problem is that these services do not
exists on WindowsXP(WAS, NETTCP listener and so on). When the
application can´t find or start the service then the application will
close. Apparently it is not a requirement to have these services on
the client computer as long as it is not running the serivice(in IIS).
So when removing the service check from the client every thing seemse
to work fine.
- source

Related

Unable to talk to self-hosted WCF Service

Summary:
I noticed that one of the remote machines is not able to connect to this self-hosted WCF service.
Message: Error :System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at https://workflowclientservice.mmx.com/WorkflowClientService that could accept the message. This is often caused by an incorrect address or SOAP action.
The other remote machines are able to talk to the self-hosted WCF service.
Background:
I have a windows service called "Dispatcher Service" and this service is self-hosting some WCF services such as "Workflow Log Service", "Alert Service" and "Workflow Client Service"
I have another windows service called "Client Service" that is consuming these self-hosted WCF services. This windows service (Client Service) is installed on different remote machines. The client service installed on the remote machines are able to communicate to this self-hosted WCF service.
What I have already tried:
I have checked the firewalls and i don't see any issues on the client and the host.
In one of the remote machine (that is able to talk to the service), I opened up an ie browser on the machine and I was able to access the service through the website
In the problem remote machine (that is not able to talk to service), I was not able to reach the service at all in the browser.
I am trying to understand why one of the remote machine is not able to talk to this self-hosted service while other remote machines are able to talk to the service. I would like to try some steps to fix the issue.
Does your service expose a metadata endpoint? Have you tried using WcfTestClient to talk to the self-hosted WCF service? I would try this from the same machine as the service to being with

How to communicate between a windows service and a desktop application running on different machines

I am writing a notification client desktop application to be installed on multiple machines on a single network. These clients will communicate with a central windows service running on a single machine within the same network. Both the client and service are written in C#.Net. I am trying to determine what technologies or frameworks I should use for communication between the client apps and the windows service. I hope to use a push notification pattern instead of polling from the client.
So far I have looked into SignalR and WCF. WCF with NamedPipes looked promising, but I saw that a limitation of the WCF NamedPipes implementation is that it has to be on the same machine, so that won't work for me. SignalR seems like a good option, but I wasn't sure if there is another framework out there that won't require hosting a web server to support HTTP.
Any Suggestions?
You can consider MSMQ to send messages. https://msdn.microsoft.com/en-us/library/ms978430.aspx
This framework does not require anything special, as it is included with Windows. You may need to install the MSMQ as a Windows Feature. In my use it has been a pretty good utility that allows notifications and a host of other features.

Two way communication using netTCPBinding

I am new to WCF (Just a day or 2). I am planning to make an application having Client/Server
WCF Service (On Server hosted as windows service):
Will invoke some commands using (Process.Start())
Will send some information from my database
Questions:
What WCF binding should I use? WsDualhttp or netTCP (Please elaborate if you can)
Does WCF works with SqlServer + EF 4.1
Server UI:
This will primarily will be used to
Start ot stop the above service
Change Address (localhost to [My Ip address]) and Port
Show status of service (Running or dead)
Questions:
How can I Change the address and port of my WCF service from this UI (it will be a different project and hence different config file).
Client App:
Used to issue commands to WCF service.
Get to know if the service is running or dead.
Receive status messages for task completion or faults.
Also, can the windows installer be combined to install ServerUI + WCF Service + Windows service?
WCF Service
Here are a couple links on choosing the right binding. Based on the scenario you're describing, I'd go with the netTCP.
C# - WCF - inter-process communication
Choosing the right WCF binding
WCF and SQL Server are independent of each other, so I wouldn't expect any problems using the Windows service to interact with your database.
I'd suggest reading up on how to start a process from a Windows service.
Server UI
I would suggest hosting another WCF service in your Windows service for interacting with your Server UI. You can use the netNamedPipeBinding since this communication channel will always be local, i.e., on the same box. So your Windows service will host two WCF services - one for the external communication with the client and one for the local communication with the configuration UI.
Installer
Yes, the Windows installer can be used, but that might be overkill for what you're describing. Of the Server UI, WCF Service, and Windows service, the only one that absolutely requires installation is the Windows service. The others could theoretically run simply by copying the assemblies to the target system. You might consider having the Windows service install itself via command line. That way you could get away with a self-extracting executable using software like WinZip. This might be less heavyweight than a formal install. If you go this route, have a look at the step-by-step here.
Ha a look at WCF duplex services:
http://msdn.microsoft.com/en-us/library/ms731064.aspx
Why do you want to have a interface to an windows service? And if you have access to IIS7 and WAS, I would recommend to use it instead of self-hosting in windows service.
Here is a good starting point for WCF Configuration Management:
http://msdn.microsoft.com/en-us/library/ff650534.aspx
Yes, you can use windows installer.
Cheers
--Jocke

WCF TCP Binding setup between IIS and Service

I developed a WCF service, and now reading about the bindings. It s said that TCP binding is the fastest one, which i like to use, but it requires WCF to WCF communication? What s that exactly means?
I have a an application that s on IIS 7, using ASP.NET and a WCF service. they are on different machines. can i use TCP binding?
When i try tcp binding from client (IIS 7) to WCF service, i m getting connection error.
is it possible to connect to WCF service using only tcp binding from another server with IIS 7?
if there is , how to do it? I open the port on firewall etc. oh , wcftestclient works, my app doesnt. :(
again, CLIENT IS ASP.NET PAGE, SERVICE IS WCF, in the SAME NETWORK.
IIS uses http. So if your intent is to communicate from a WCF client to an ASP.NET application you should use the http binding. In IIS7, you have to manually go through a series of steps to enable non-HTTP bindings, but it's possible. This MSDN article show you how you can do this
http://msdn.microsoft.com/en-us/magazine/cc163357.aspx
If your client application is the ASP.NET application then yes, you should be able to use TCP binding between you ASP.NET application (that is acting as a WCF client) and your other application that is NOT an ASP.NET application but a regular application that is a WCF service
What you might want to try is build a console application as your WCF client using TCP binding and then:
Run it from the same box as your service and ensure things are working correctly.
Run it from the IIS box against your WCF service running on the other box and see if it works.
If both these work then it should work from your ASP.NET application as well.

Starting WCF Client in IIS

It is possible to have WCF Client that connects persistantly using duplex over net.tcp (netTcpBinding) from IIS?
i.e. the normal way would be to host it in a console app or as a windows service, my question is, could one use a shared hosting type of environment to run a WCF Client application.
i.e. the application isn't ever accessible from the outside, the application just connects to another service and consumes a remote WCF service over the internet.
If the ASP.NET app is the client, you could try loading the WCF Client into an Application or Session variable.
I've done something slightly similar with a System Timer and it worked a treat.

Categories

Resources