I've tried to use HttpClient to set the timeout in 3.0 code, but I ended up needing to add a try/catch block due to what appears to be connection sharing of requests (I attempt to set the timeout and eat this invalid operation):
System.InvalidOperationException: This instance has already started one or more requests. Properties can only be modified before sending the first request.
at System.Net.Http.HttpClient.set_Timeout(TimeSpan value)
at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
at Raven.Client.Connection.HttpJsonRequestFactory.CreateHttpJsonRequest(CreateHttpJsonRequestParams createHttpJsonRequestParams)
at Raven.Client.Connection.Async.AsyncServerClient.CreateRequest(String requestUrl, String method, Boolean disableRequestCompression, Boolean disableAuthentication, Nullable`1 timeout)
at Raven.Client.Connection.Async.AsyncAdminServerClient.<.ctor>b__0(String url, String method)
at Raven.Client.Connection.AdminRequestCreator.CreateDatabase(DatabaseDocument databaseDocument, RavenJObject& doc)
at Raven.Client.Connection.Async.AsyncAdminServerClient.<CreateDatabaseAsync>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Raven.Client.Connection.Async.AsyncAdminServerClient.<EnsureDatabaseExistsAsync>d__41.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Raven.Client.Extensions.TaskExtensions2.WaitUnwrap(Task task)
at Raven.Client.Connection.AdminServerClient.EnsureDatabaseExists(String name, Boolean ignoreFailures)