J'ai eu un problème similaire dans le passé, donc j'ai hâte de voir une résolution à cette question. Le commentaire d'Aaron Bertrand sur l'OP a conduit à La requête expire lorsqu'elle est exécutée à partir du Web, mais ultra-rapide lorsqu'elle est exécutée à partir de SSMS , et bien que la question ne soit pas un doublon, la réponse peut très bien s'appliquer à votre situation.
Essentiellement, il semble que SQL Server ait un plan d'exécution en cache corrompu. Vous frappez le mauvais plan avec votre serveur Web, mais SSMS atterrit sur un plan différent car il y a un paramètre différent sur l'indicateur ARITHABORT (qui n'aurait autrement aucun impact sur votre requête particulière/procédure stockée).
Voir ADO.NET appelant la procédure stockée T-SQL provoque une SqlTimeoutException pour un autre exemple, avec une explication et une résolution plus complètes.