Dopo varie ore di diventare matto ho trovato la seguente soluzione : Ho dovuto passare al command tre istruzioni, quindi non come stored procedures, ho passato il risultato della stored ad una variabile e poi l' ho stampata a video, poi ho dovuto raccogliere il valore stampato tramite il comando conn.InfoMessage e l' ho pubblicato nel Web Method.
using (SqlConnection conn = new SqlConnection(datosConexion))
{
conn.Open();
SqlCommand command = new SqlCommand("declare @pr int exec @pr = Sp_Orb_Web_PersonAdd '" + salutation + "','" + firstname + "','" + lastname + "','" + lastname2 + "'," + companyid + "," + departamentoid + "," + cargoid + ",'" + cargodescripcion + "','" + emailaddress + "','" + phonenumber + "','" + country + "','" + state + "','" + usuarioweb + "','" + pwdweb + "','" + razonsocial + "' print @pr", conn);
conn.InfoMessage += delegate(object sender, SqlInfoMessageEventArgs e)
{
output += "\n" + e.Message;
};
command.ExecuteNonQuery().ToString();
}
valor = Int32.Parse(output);