una cosa molta strana che ho notato è questa.
Mi sono creato una paginetta esterna al progetto ed ho eseguito le classi istruzione di connessione

Dim conn As MySqlConnection = CType(getStrConnection("conn"), MySqlConnection)
Dim cmd As New MySqlCommand
Dim dr As MySqlDataReader

If Not Page.IsPostBack Then
Try
cmd = New MySqlCommand("....", conn)
conn.Open()
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
If dr.Read() Then
dim prova as string = dr(0)
dim prova1 as string = dr(1)
dr.close()
Catch exc As MySqlException
....
Finally
If (Not (dr Is Nothing)) AndAlso (dr.IsClosed = False) Then
dr.Close()
End If
conn.Close()
End Try
end if

Se vado a impostare come espressione di controllo cmd.ExecuteReader mi scatta l'eccezione in fase di debug. Se eseguo senza debug... va bene.
All'interno del progetto invece l'eccezione scatta anche in esecuzione normale.
L'ecceziione è sempre la stessa:
Generata eccezione in fase di esecuzione:System.InvalidOperationException - Connection must be valid and open
Ho anche provato a sostituire alla conn direttamente la stringa di connessione.... nulla da fare
Ma come posso fare?