April 4th, 2008 by JuanK
Windows Comunication Foundation
Como algunos recordaran, en el evento del pasado 02 de abril de 2008, uno de los demos, el de Windows Communication Foundation no funcionó, pues bien acá les tengo el demo corregido, no sin antes explicarles cual fue el origen del error, que realmente fue una estupidez.
Resulta que como todos recordaran el demo se divide en dos partes: el cliente y el servidor, pues bien este es el screenshot del cliente:

Como puden ver el cliente esta hecho en WPF y tan solo tiene un botón, este demo se creo de manera manual hace ya algunos meses así que cuando se hizo se creó el siguiente código asociado al evento click del botón:
private void VerMensaje(object sender, EventArgs e)
{
try
{
HolaMundoServiceProxy proxy = new HolaMundoServiceProxy();
btnMostrarSaludo.Content = proxy.DecirHolaMundo();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Fijense que uno de los parámetros de entrada es de tipo EventArgs, pues bien ahí es donde se generó el error puesto que tal como esta el ejemplo habría funcionado perfectamente, pero en medio del evento sucedio un infortunio…
Cuando inicie la presentación del demo les mostré la interfaz gráfica del cliente y acto seguido para mostrarles el código que llama al servicio le di doble click al botón desde el diseñador, esto ocasionó que internamente visual studio buscara un método asociado al evento click, y como no lo encontró decidió crear uno propio… sin código.
Algunos de ustedes ya pueden estar pensando “pero si nos acaba de mostrar el código asociado al click del botón…” es cierto pero resulta que Visual Studio por defecto buscará un método con este signature
private void VerMensaje(object sender, RoutedEventArgs e)
Y en el código que había sido creado manualmente no se utilizo RoutedEventArgs sino EventArgs, lo cual no tiene problema pero Visual Studio hace la busqueda del metodo de acuerdo al signature expuesto anteriormente.
Así las cosas lo único que había necesidad de hacer para ejecutar el demo correctamente era eliminar el método creado por Visual Studio para que fuera llamado el metodo originalmente creado. Les adjunto los archivos para que los puedan descargar, compilar y probar, también estan ya los binarios compilados por sino les interesa el código
Decarga de Código
Descarga de Binarios
Recuerden que el servidor, bajo Windows vista debe ser ejecutado con privilegios elevados, pueden intentar como click derecho ejecutar como administrador.