Mi código usa muchas llamadas WCF y cuando trato de depurarlo, no va al código de servicio. ¿Hay alguna manera de depurar el código WCF de alguna manera?Cómo depurar programas WCF
Respuesta
Es necesario adjuntar el depurador al proceso que su servicio WCF se ejecuta en.
Si en IIS que necesita para insertarse en el proceso de w3p.exe correspondiente.
Si está en una aplicación independiente o servicio de Windows, adjunte el nombre de su exe.
En Visual Studio, en el menú del depurador, hay un "adjuntar al proceso". Abra el código correspondiente, establezca un punto de interrupción y llame al servicio para que se ejecute la ruta del código.
Fuera de la depuración, el uso del seguimiento de .NET con niveles intercambiables es una buena forma de obtener información sobre lo que está sucediendo. Por lo general, configuro la depuración de sys internals para resaltar los errores y las advertencias en color y constantemente lo ejecuto mientras ejecuto código o pruebas. Las líneas de color fuera de mi visión periférica mientras trabajaba encuentran problemas.
Se conecta al servicio en sí, no el código que lo llama.
Para depurar un servicio WCF en visual studio 2010, vaya a Depurar -> Adjuntar al proceso. Marque "Mostrar procesos de todos los usuarios" y elija w3p.exe si está utilizando IIS, o el nombre de la aplicación si no es así. Ponga en un punto de interrupción, haga la llamada, y luego puede comenzar la depuración.
Si se trata de una aplicación web (lo recomendaría) puede hacer clic derecho en el proyecto, ir a la pestaña Web, y en Acción de inicio elegir "No abrir una página, esperar una solicitud de un externo solicitud". Guarde y cierre esta configuración, luego presione F5 para iniciar la depuración.
La depuración de aplicaciones web me ahorró una gran cantidad de tiempo. –
Si usted está buscando para rastrear la actividad de WCF para ver si se genera el tráfico en el orden correcto, entonces recomendaría uno de los siguientes enfoques:
1) el uso fiddler a ver el tráfico de WCF.
2) Use el detector de seguimiento WCF para supervisar las llamadas WCF reales. Esto es extremadamente útil al tratar de determinar las causas de la falla de serialización. Puede habilitar esto añadiendo el siguiente bloque a bloque de configuración de su web.config:
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="traceListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="c:\log\WebTrace.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>
hacer doble clic en el archivo generado se abrirá el visor de registro de servicio WCF, que analizará el archivo para usted y le permitirá para explorar en llamadas específicas y ver las excepciones reales que ocurren.
Esto fue ** extremadamente ** útil en mi caso. ¡Muchas gracias! – LoBo
Cuando se ejecuta una aplicación que accede a servicios WCF a menudo hay dos procesos involucrados
- El proceso de cliente que está accediendo al servicio WCF
- El proceso del servidor que se aloja el servicio WCF
Parece que estás depurando el proceso del cliente. Para pasar por el código de servicio WCF real, debe conectar el Visual Studio Debugger al proceso que hospeda el servicio y establecer un punto de interrupción en el código.
Nota: Visual Studio se puede conectar a varios procesos simultáneamente para que pueda depurar tanto el código del cliente como el del servidor en la misma sesión. Utilice
- Herramientas -> Asociar al proceso
Hay una manera mucho más fácil. Simplemente inicie múltiples procesos en Visual Studio. Haga clic derecho en la solución. Haga clic en Propiedades. Seleccione Proyecto de inicio. Haga clic en Múltiples proyectos de inicio. Establezca los proyectos de WCF y de Cliente en Acción = Inicio. Ahora pasará por la WCF y el cliente.
esto probablemente debería ser seleccionado como respuesta correcta – Sergei
En mi caso, me puse el sitio WCF como StartUp Project
en Visual Studio y directamente ejecutar el WCF en el modo de depuración,
el elemento WCF en Visual Studio Explorador de soluciones es como:
después del inicio de WCF, habrá un nuevo programa de la página web en el navegador, y su URL gustaría http://xxxx:xxport/Service.svc
, copiar este URI y utilizarlo en otro programa que se llaman a esta WCF,
entonces establezca el punto de ruptura en el método que llama al programa, el punto de interrupción se ingresará con éxito cuando se ejecute el programa.
- 1. ¿Cómo depurar programas usando señales?
- 2. Cómo depurar el servicio WCF?
- 3. ¿Cómo puedo depurar programas C++ 0x en MacPorts gcc 4.5?
- 4. Cómo depurar programas escritos en fasm en Linux usando gdb?
- 5. "Paso" al depurar programas multiproceso en Visual Studio
- 6. ¿Necesito saber ensamblar para depurar programas escritos en C?
- 7. programas especifique la autorización personalizado de WCF (NetTcpBinding)
- 8. WCF Beginner Tutorial - No se puede depurar (ingrese)
- 9. WCF: Cómo deshabilitar WCF Test Client
- 10. ¿Cómo depurar un cargador de arranque?
- 11. Depuración de programas de Python en emacs
- 12. ¿Cómo perfilo mis programas Perl?
- 13. ¿Cómo acelerar los programas WPF?
- 14. Cómo depurar un servicio WCF con dos aplicaciones de consola simultáneamente
- 15. Cómo depurar MSBuild Customtask
- 16. ¿Cómo depurar JavaScript ofuscado?
- 17. Cómo depurar tabindex
- 18. Cómo depurar elisp?
- 19. Cómo depurar aplicaciones Web2py?
- 20. cómo depurar EXC_CRASH (SIGTRAP)
- 21. ResourceNotFoundException cómo depurar?
- 22. Cómo depurar fuente JDK
- 23. ¿Cómo debo depurar AppleScript?
- 24. ¿Cómo depurar usando gdb?
- 25. Cómo depurar ClojureScript
- 26. ¿Cómo depurar websockets?
- 27. Cómo depurar Aquamacs
- 28. ¿Cómo depurar ASP.net HTTPHandler
- 29. ¿Cómo puedo depurar AutoMapper.AutoMapperMappingException
- 30. Cómo depurar ConcurrentModificationException?
¿Cómo está ejecutando el servicio WCF? ¿Dentro de IIS o como una aplicación independiente? –