We've had some web services in production for several years now. Evidently, because of some changes at either the client or network level, some clients are just recently failing to connect with an HTTP 417 error. In at least some cases, I can run the identical code (from the same directory and .config file) connecting to the same web service, and one client will get the 417 error and another one sitting right next to it will not.
In situations where we have an SSL certificate on the web server, we've sometimes been able to work around this by connecting using https rather than http, but not all of our customers who host web services internally have this option readily available.
I know it's not a change that we made recently, because I can run older builds from 2-3 years ago and they will exhibit the same problem.
Any thoughts on how to troubleshoot this?
Could it be related to a proxy server and settings on the ServicePointManager?
http://social.msdn.microsoft.com/Forums/en-US/devdocs/thread/60cd6e6a-4157-4811-8ed3-1e46f9022ea8
http://www.codeproject.com/Articles/94235/The-request-failed-with-HTTP-status-417-Expectatio
http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.expect100continue.aspx
We tried the "expect100continue" setting for the ServicePointManager, but it resulted in at least an order of magnitude performance degradation.
[EDIT: I expect the performance degradation is because the proxy server is now inspecting every SOAP message passing between the client and web service -- we experienced similar performance problems when using http versus https at some customer sites that had smart firewalls -- https was *much* faster, presumably because the proxy/firewall cannot inspect the packets and gives them a pass]
There are no proxy server settings on the offending client in Internet Explorer, and least accessible via the GUI in Explorer where the settings are usually set. Where else would you look for them?
Copyright (c) Marimer LLC