El problema que tiene es que el comando de consulta tarda demasiado. Creo que el tiempo de espera predeterminado para ejecutar una consulta es de 15 segundos. Debe configurar CommandTimeout (en segundos) para que sea lo suficientemente largo para que el comando complete su ejecución. El "CommandTimeout" es diferente al "Tiempo de espera de la conexión" en su cadena de conexión y debe establecerse para cada comando.
En su evento de selección de sql, use el comando:
e.Command.CommandTimeout = 60
por ejemplo:
Protected Sub SqlDataSource1_Selecting(sender As Object, e As System.Web.UI.WebControls.SqlDataSourceSelectingEventArgs)
e.Command.CommandTimeout = 60
End Sub