Learning TCP to write web apps is digging pretty deep. It is one of those "good to know" things that you refer to once a decade. What is more important is an understanding of how http works, in particular GET and POST.
IIS on the other hand is a much larger topic. At the minimum, you will need to understand IIS web sites, bindings and application pools. Where to look for that information depends largely on which version of IIS you are talking about. 5.0, 6.0, 7.0 or 7.5. Each is a bit different but the biggest change is between 6.0 and 7.0.
After IIS comes Asp.Net, which ties very closely into IIS and has the ability to change many IIS behaviors right from the web.config.
As to troubleshooting, the two obvious places are the windows Event Logs and the IIS logs. If you are talking about troubleshooting Asp.Net, then you can also enable detailed error messages by turning off the friendly error messages