Claro que as soluções acima são perfeitas. Apenas para evitar avisos e para um console limpo, fiz a seguinte alteração no meu código. (isso também apenas para ASP.NET Development Server) Escrevi um manipulador extra para isso:
PNGHandler.cs
class PNGHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
if(context.Request.HttpMethod == "GET")
{
string requestedFile = context.Server.MapPath(context.Request.FilePath);
FileInfo fileinfo = new FileInfo(requestedFile);
string contentType = "";
if (fileinfo.Exists && fileinfo.Extension.Remove(0, 1).ToUpper() == "PNG")
{
contentType = "image/png";
context.Response.ContentType = contentType;
context.Response.TransmitFile(requestedFile);
context.Response.End();
}
}
}
}
E adicionado Http Handler em web.config em system.web
<system.web>
<httpHandlers>
<add path="*.png" verb="*" type="PNGHandler" />
</httpHandlers>
</system.web>