per la cronaca il problema è il finally commentato:
codice:
        private SqlConnection conn = new SqlConnection("Data Source=10.0.5.131;Initial Catalog=TELENEWS;Persist Security Info=True;User ID=sa;Password=sa");

        public DataSet ddlNetwork()
        {
            SqlDataAdapter adapter = null;
            DataSet ds = null;
            try
            {
                conn.Open();
                adapter = new SqlDataAdapter("select_soluzioni", conn);
                ds = new DataSet();
                adapter.Fill(ds);
                return ds;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                ds.Dispose();
                adapter.Dispose();
                conn.Close();
            }
        }

        public SqlDataReader ddlGruppi(int soluzione)
        {
            SqlDataReader reader = null;
            SqlCommand cmd = null;
            try
            {
                conn.Open();
                cmd = new SqlCommand("select_gruppi_soluzione", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@soluzione#", soluzione);
                reader = cmd.ExecuteReader();
                return reader;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            //finally
            //{
            //    conn.Close();
            //}
        }
senza commento da errore.