Jag har haft ett liknande problem tidigare, så jag är angelägen om att se en lösning på denna fråga. Aaron Bertrands kommentar om OP ledde till Frågetiden går ut när den körs från webben, men supersnabb när den körs från SSMS , och även om frågan inte är en dubblett, kan svaret mycket väl gälla din situation.
I huvudsak låter det som att SQL Server kan ha en korrupt cachad exekveringsplan. Du träffar den dåliga planen med din webbserver, men SSMS landar på en annan plan eftersom det finns en annan inställning på ARITHABORT-flaggan (som annars inte skulle ha någon inverkan på din specifika fråga/lagrade proc).
Se ADO.NET anropar T-SQL lagrad procedur orsakar ett SqlTimeoutException för ett annat exempel, med en mer fullständig förklaring och upplösning.