Nel mio caso ho ricevuto questa eccezione anche quando tutti i valori dei parametri sono stati forniti correttamente ma non è stato specificato il tipo di comando:
cmd.CommandType = System.Data.CommandType.StoredProcedure;
Questo ovviamente non è il caso della domanda precedente, ma la descrizione dell'eccezione non è molto chiara in questo caso, quindi ho deciso di specificarlo.