I have been working with CiviMail to upload images directly to the mailing templates from the KC finder image upload. I am successfully able to upload an image via KC finder which looks good when I upload it. However, once I click away to add the image to the template it shows a big red x instead of the actual image. I understand that it might be a permissions issues but I have tried different options for the issue and it does not work. This CiviCRM is on a Windows 2012 server with IIS 8.5 and PHP 5.6.20. I have tried a number of options from not naming the images with dashes to permissions of the server.
If your images are being stored in a directory that prohibits direct access, it will give you that symptom. There's a .htaccess file that performs this function for apache, I'm not sure how that works with MS servers.
Your best bet is to try loading the image directly (e.g. right click on the broken image and load the image in a new tab) and see what the path/url is, and look in your server logs, it should tell you why that image is not being loaded, i.e. either whether it is a permission or just a not-found issue.
The answer to this issue is in the PHP uploads which needs to match the directory upload url. When a file is uploaded via CiviCRM it goes to the temp folder (same like Drupal) and then moves the file to the permanent folder after it has been fully uploaded. If the temp folder and php temp folder do not match exactly then the image will appear broken on the screen. This video actually gave me the idea of a solution - https://www.youtube.com/watch?v=Wrr-dTFfNi8