When programatically accessing files from SharePoint from C#, use WebClient instead of WebRequest. WebRequest can lockthe file even when it fails to retrieve what you want. Then you have to wait for the timeout before the file is released again. With WebClient, this problem doesn't occur at all. So when possible, use WebClient instead of WebRequest for SharePoint file access.