On large repository request handling could take significant time. By default ASP.NET gives app 110 seconds before it will abort handling. When testing on repository ~600 Mb in size with several thousands of commits - git clone command ended with HTTP timeout error. After timeout was increased - problem gone.
…ositories. HttpResponse.WriteFile() reads entire file into memory which leads to huge memory inefficiencies. Replaced with sending file by 16kb chunks.
When Write(string) is called on response - it adds "charset=utf-8" to the ContentType, so that raw HTTP header looks like "Content-Type: application/x-git-upload-pack-advertisement; charset=utf-8" and JGit treats that as incorrect. With explicit setting of the Charset everything works fine.
… horizontal graph
add configuration validation, remove webapp