protected override async Task ServeFile(HttpRequest request) { string requestedFile = request.Path.Remove(0, virtualRoot.Length).TrimStart('/'); int eventId; if (!int.TryParse(requestedFile, out eventId)) { request.SetStatusCode(HttpStatusCode.BadRequest); return; } byte[] data = await ReadFile(request, requestedFile + ".png"); if (data == null) { // request.SetStatusCode(HttpStatusCode.NotFound); // return; data = File.ReadAllBytes("app/eventimg/default.png"); } MemoryStream imageStream = new MemoryStream(data); Stream resized = MyStamp.ResizeImage(imageStream, width, height); byte[] watermarkedData = new byte[resized.Length]; resized.Read(watermarkedData, 0, (int)resized.Length); // Set the appropriate Content-Type request.SetContentTypeByExtension(ContentType.Image, "png"); // If we managed to read the file, first set the headers request.SetStatusCode(HttpStatusCode.OK); // Then write the file to the response stream await request.Write(watermarkedData); }