3
votes

I have seen a multitude of questions and answers regarding this issue but none that seem to fix or completely match my situation.

I have a website running locally on my own IIS for development purposes. This website calls a web service that is provided by a government entity to perform a task. The site is used by me to develop / tweak etc and by the testing department for preliminary testing.

Recently the government has required that we support TLS1.2 when using this service. They provided us with new SHA-2 certificates. No problem. The same service is used in a standalone application and works fine using the TLS1.2 protocol. However, now I've found that when I make the service call via our internal website it fails with the infamous 'no endpoint found ...' error. But, when I have Fiddler running it works fine.

My fiddler setting are:

  • 'Ignore server certificate errors' Unchecked (Checked also fails)
  • 'Protocols' ';TLS1.2' (Allowing a broader range also fails)
  • 'Act as system proxy on start up' Unchecked (Checked also fails)
  • 'Fiddler listens on port' 8888
  • 'No proxy' Selected. ('Use system proxy' also fails)

NOTE: By 'fails' I mean the service call still works. Success to me would be if I got a helpful error.

The new certs are installed properly. Remember the service calls work fine outside of IIS.

My current take is that there is some kind of security issue because I am not using a signed certificate for my testing website even though this was not an issue before the change to SHA-2. The reason it works with Fiddler is that Fiddler uses its own certificate. Could that be it?

So, to the question, why is this service call working in the standalone application and working on my local development website only when Fiddler is running?

2

2 Answers

3
votes

There can be a a host of reasons, as nicely described by Telerik themselves http://www.telerik.com/blogs/help!-running-fiddler-fixes-my-app-

  • HTTPWebRequest --> often not calling Close() on GetResponseStream()
  • Keep-Alive issues --> as your app has a local connection to fiddler, the timing of these reduces any issues you are seeing
  • Buffer Sizes --> network inefficiencies, which go away due to local connections
  • Slow Proxy Determination
  • HTTPS Issues --> Correct or replace the server’s certificate.
  • Protocol Versioning --> either disable TLS/1.1+ on the client, or better yet, nag the server operator to upgrade their software to support the TLS standard.
2
votes

I've had a similar problem, my app couldn't reach the web service but when Fiddler was running everything worked fine.

The solution for my case was that the user that was running the app had not sufficient privileges. Fiddler was running on my user, so it has access to invoke the service. I've changed the user of the app for a user with sufficient privileges and everything have started to work fine.