I’ve posted this to the WordPress forum here.

Ignore all this waffle and go straight to the fix here.

Humm. Extrodinary, there’s definitely something going on here and I’ve tried to narrow it down as much as possible, it’s almost too complicated to explain so I’ll try by best to keep things simple. To start I’m using IIS 8 on a Windows Server 2012 box.

If I use the ‘add media’ button to insert an image into my post the image will not be displayed. I have tested this with both .jpg and .png files and the results are the same.

If I examine the HTML WordPress has created for the the image both the syntax and the url are correct. If I look at the path to the image on the server the path is correct, in my case (/wp-content/uploads/2013/02/myimage.png) also the image is there!

If I remote into the server I can open the image and everything looks fine…

HOWEVER, in my browser if I try and fetch the image directly by going to http://www.mydomain.com/wp-content/uploads/2013/02/myimage.png I get:

500 – Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.

Now here comes the real kicker. If I copy the image to my server myself – without using WorePress’ ‘add media’ function the image comes up fine!

It’s as though WordPress is doing something to the original image that works perfectly if an application tries to open it, but NOT fine if the image is being opened with a browser or IIS 8′ MIME type has gone wobbly.

I’ve tried selecting the various sizes (which personally I think is a bit of a waste of storage, storing so many images, but that’s not relevant here)

Is it do do with encoding? Am I just being silly and overlooking the obvious… I don’t know sometimes I find it variable with what happens.