I was having the same problem as you. You upload an image in WordPress and either you get an error or the image will upload, thumbnails would work but the actual image would not have read permissions. I’m not an IIS or WordPress expert but after a ton of searching and trying things that didn’t work, this is what worked for me.
If you can’t upload an image at all, it’s probably because you need to give the IUSR account Read/Write/Modify permission on your wp-content folder. This will allow you to upload, and do the WordPress & plugin updates.
Once you have done that, all you need to do is give the IIS_IUSRS group Read permissions on your “C:\Windows\Temp” folder.
Make sure to notice that the two permission changes you make are not for the same user/group. Give IUSR permissions on your wp-content folder and IIS_IUSRS permissions on your Windows temp folder.
I read some other posts saying to edit your php.ini file and change the upload temp directory and give that directory permissions but that didn’t work for me.
That should do it, or at least it worked for me.
If you’re still having problems, here is something else you can try. When I was having problems with my uploaded images I noticed that even though IUSR had permissions on my uploads folder they weren’t propagating to the newly uploaded files. The other thing I noticed was that when a new image was uploaded the Owner of the new file was IUSR, and instead of giving IUSR the permissions that I had assigned for the parent folder it seemed to copy the permissions from “CREATOR OWNER” and assign them to IUSR for the upladed file. “CREATOR OWNER” doesn’t really have any rights so the next thing I was going to try is to give “CREATOR OWNER” Read/Write/Modify permissions on my uploads folder. Maybe these new permissions would get copied and assigned to IUSR for new uploads? Worth a try anyway.