Hola!
Tengo problemas, puse unos msgbox de aviso en mi pagina web, pero a la hora de mostrarlos la pagina me da error , pero cuando eliminó estos mensajes la pagina funciona perfectamente!
Línea 66: datosRegistro.NombreRegistro = nombreCedula Línea 67: objConexion.insertarRegistro(datosRegistro) Línea 68: MsgBox("Empleado registrado Satisfactoriamente" & " " & _ Línea 69: "Hora de Ingreso" & " " & lblHora.Text, MsgBoxStyle.Information) Línea 70:
[InvalidOperationException: No se puede mostrar un cuadro de diálogo o formulario modal cuando la aplicación no está en modo UserInteractive. Especifique el estilo ServiceNotification o DefaultDesktopOnly para mostrar una notificación de una aplicación de servicio.] System.Windows.Forms.MessageBox.ShowCore(IWin32Window owner, String text, String caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, Boolean showHelp) +2662442 System.Windows.Forms.MessageBox.Show(IWin32Window owner, String text, String caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options) +26 Microsoft.VisualBasic.Interaction.MsgBox(Object Prompt, MsgBoxStyle Buttons, Object Title) +560 CapturaAsistencia.WebForm1.txtCedula_TextChanged(Object sender, EventArgs e) in C:\ConsultaAsistencia\CapturaAsistencia\CapturaAsistencia\WebForm1.aspx.vb:68 System.Web.UI.WebControls.TextBox.OnTextChanged(EventArgs e) +8739438 System.Web.UI.WebControls.TextBox.RaisePostDataChangedEvent() +55 System.Web.UI.WebControls.TextBox.System.Web.UI.IPostBackDataHandler.RaisePostDataChangedEvent() +10 System.Web.UI.Page.RaiseChangedEvents() +165 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1485
Información de versión: Versión de Microsoft .NET Framework:2.0.50727.3082; Versión ASP.NET:2.0.50727.3082
Saludos, efectivamente envíar mensajes al cliente con la clase MessageBox de Windows.Forms, no es lo más recomendable en un escenario web.
Cuando desarrollabas localmente funcionaba por que tanto el cliente y el server son lo mismo, pero al hacer deploy, el tratará de lanzar el mensaje en el server no en el cliente que esta haciendo el request a la página.
Para resolver tu caso te recomiendo que envíes el mensaje mediante un alert de javascript o que utilices un mensaje modal de ajax.
En el caso de enviar un alert puedes escribir este código
try{ /* do something here */}catch(Exception MyException){ Response.Write("<script language='javascript'>window.alert("+ '"' + MyException.Message + '"' +");</script>");}
en c#
ó en VB
try 'codigo deseadocatch(ex as Exception ) Response.Write("<script language='javascript'>window.alert("+ '"' + ex.Message + '"' +");</script>")
end try
Otra opción es usar Page.ClientScript.RegisterClientScriptBlock, mirá este link
http://www.beansoftware.com/ASP.NET-Tutorials/Message-Box.aspx
Saludos.