Why can't Fiddler see my web service traffic?
Asked Answered
O

3

14

I had a problem that Fiddler wasn't showing my web service calls made from my application (running locally). I found and solved my problem.

So my question is not how, but why does Fiddler not show web service traffic? I have a very limited understanding of how network traffic works so this might be quite simple/obvious. All I'm able to decipher is:

  1. I don't think it has anything to do with HTTPS, as I can see HTTPS requests in Fiddler (decoded if I want through Fiddler's settings).

  2. I copied a piece of code new WebProxy("127.0.0.1", 8888); in order to get it to work so it must have something to do with proxies?

This is an ASP.NET application in case that makes a difference.

Offensive answered 20/9, 2013 at 9:50 Comment(6)
This seems to me very much related to this question: #214808 As you have a local proxy, Fiddler ignored your traffic. You may follow the link above to fix it.Geoponics
possible duplicate of How do I get Fiddler to stop ignoring traffic to localhost? - this answer: https://mcmap.net/q/156505/-how-do-i-get-fiddler-to-stop-ignoring-traffic-to-localhost explains why.Beneficent
Based on that, I have a service reference to a third party hosted service. So the web service is not localhost or local in any way, it is definitely talking outbound. Does this make a difference? It seems that answer is related to a local web service call.Offensive
This might shed some light: fiddler2.com/blog/blog/2013/01/08/…Beneficent
Fiddler is a proxy; it only sees things sent to it. By default, this includes most clients (e.g. browsers) running in your user account. IIS/ASP.NET runs in a different user-account.Christi
@Beneficent That first paragraph was just the explanation I needed: When Fiddler launches and attaches, it adjusts the current user’s proxy settings to point at Fiddler, running on 127.0.0.1:8888 by default. That means that traffic from most applications automatically flows through Fiddler without any additional configuration steps. Although I guess I should also thank Eric as he appears to be the one who wrote it!Offensive
B
26

Really old question but:

While the answer and comments hint towards the right solution, they are far from answering the question.

Fiddler sees traffic by your user account. Since web services run by the application pool identity, fiddler cannot see their traffic.

The easiest solution (and the only one that worked for me) is to change the website application pool user to run under your account

Simply:

  1. Open IIS
  2. Find your website application pool name (right click website -> Manage Website -> Advanced Settings -> Listed under Application Pool)
  3. Go to application pool advanced settings (Application Pools -> Right click your desired application pool -> Advanced Settings)
  4. Change User Account to your account (Identity -> ... -> Custom Account -> Set)
Bull answered 20/10, 2016 at 20:57 Comment(2)
Fiddler seems to default to the logged on user's traffic as well, regardless of "Run As...", so if your service runs as any user other than the logged on user, it will not see the trafficWill
If you get "The specified password is invalid. Type a new password", see https://mcmap.net/q/337479/-what-type-of-password-i-have-to-give-to-set-the-custom-account-for-application-pool-identity-closedJoiejoin
D
4

As noted above:

That first paragraph was just the explanation I needed: When Fiddler launches and attaches, it adjusts the current user’s proxy settings to point at Fiddler, running on 127.0.0.1:8888 by default. That means that traffic from most applications automatically flows through Fiddler without any additional configuration steps. Although I guess I should also thank Eric as he appears to be the one who wrote it!

References

Dub answered 20/9, 2013 at 9:50 Comment(0)
C
1

adding the following content inside the config is also a solution.

 <system.net>
  <defaultProxy enabled = "true">
    <proxy bypassonlocal="false" proxyaddress="http://127.0.0.1:8888" />
  </defaultProxy>
</system.net>

Also, if the traffic from the web service is pointing to another application in same localhost, try using the machine name instead of localhost in the request url.

Cyanocobalamin answered 7/2, 2018 at 23:59 Comment(2)
I found this solution somewhere else and tried following it. It seems the schema for this section has changed or I can't figure out how to integrate it into the current <section /> tag. This is the existing tag <section name="defaultProxy" type="System.Net.Configuration.DefaultProxySection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>Prosthetics
if you working with asp.net, this is the correct answer.Token

© 2022 - 2024 — McMap. All rights reserved.