How can I solve an application networking issue?
I have assisted with an application that has a couple of thousand deployments. This application is a .NET 2 Winforms application.
There are a couple of features that require the application to "phone home" to some custom web services that we have written to update product information.
For several years this has worked fine. The occasional support call we would get would be firewall related which we would fix by adding exceptions for out application.
Thi开发者_C百科s year we are getting some calls where our application is unable to connect to our web services but is FOR SURE not a firewall related issue.
Domain Name resolution is occurring and the page for the Web Service can be loaded into a browser. Nevertheless, our APPLICATION is completely unable to connect to the web service.
For the life of me, I do not know how to solve this problem.
Can anyone offer some suggestions on how to troubleshoot and debug this issue. Any guidance is welcome. I AM able to copilot in to some of these customers to get remote access to their machines.
Seth
This sounds like a pickle, as other have mentioned you can always create a diagnostic app and see what kind of returns/ exceptions are being thrown. Here's a few thoughts...
- Is the application even calling out to the app server hosting the webservices? Does the services host see the incoming connections from these client PCs (check access logs)?
Let's check from the client side, you can simply use a command window on the client machine and use netstat -a
command to see all TCP/UDP connections to and from the machine, look for your webservice host in there, ideally run this command close to when the app attempts it's call home.(can you trigger these "phone home" calls manually?)
Another more involved approach is Wireshark, setup a capture filter there to pick up only traffic to your backend server, and if its not SSL, you can even go as far as seeing the SOAP and/or XML that's going across the wire.(which helps if you are connecting but there is an issue with the envelope/message/format)
Another possibility is proxy issues, but if you are using default, and they are getting to it through browser, that's not as likely. Depending on how this app is coded, can you show some code around where these calls are getting made?
When you say it cannot connect, do you mean it reaches the webservice (verified by IP/connection logs) but isn't able to retrieve the page, or that it never reaches the webservice?
If it is repeatable, what about throwing together a little test app that just calls your webservice, doing as much debug logging as possible, and run that from one of these remote clients? (not sure what to tell you if it works.. but that could indicate something in itself. Perhaps test on another port.)
No proxy within these client's network that IE is using and your service is not?
Could you build a small test application with a ton of debugging/logging information that you could get one of your clients that is having the problem run? If you write a test application that connects in the same way as your real application you could log every single step and exception to a log file and that might help you figure out what is going on. You'll need to find a customer that is willing to work with you but with a couple of thousand deployments there should be someone that is willing to give you a hand.
If you post the piece of code that is doing the phoning home we might come up with some more specific ideas.
精彩评论