visual tutorial studio example ejemplo consumir consume c# wcf visual-studio-2010

c# - tutorial - Visual Studio 2010 Automatic Attach to Process



wcf soap service c# (10)

Estoy usando Visual Studio 2010, mi aplicación tiene un arquitecto de múltiples capas,

MainUI, WCFService, BLL y DAL

Mi MainUI se comunicó a WCF y WCF se comunica más a BLL y DAL, siempre que necesite depurar BLL y DAL, primero debo adjuntar WCF como un proceso en Visual Studio (cada vez). ¿Cómo podría salvarme de esta molestia?

¿Cómo podría configurar Visual Studio de forma que me conectara automáticamente al servicio y pudiese depurar mi aplicación fácilmente?

Gracias


  1. En la página de propiedades del proyecto de servicio wcf, seleccione la pestaña Web.
  2. Seleccione ''Iniciar programa externo'' para la acción de inicio y elija MainUI.exe.
  3. Establezca el directorio de trabajo como la carpeta en la que se encuentra MainUI.exe (probablemente una carpeta bin).
  4. Establezca un punto de interrupción y presione f5 para iniciar la depuración.

¿Ha intentado usar el WCFSvcHost.EXE que viene con Visual Studio para iniciar el servicio BLL y DAL? Hay un archivo de ayuda con él. El archivo de ayuda lo indica mejor: "Windows Communication Foundation (WCF) Service Host (wcfSvcHost.exe) le permite iniciar el depurador de Visual Studio (F5) para alojar y probar automáticamente un servicio que haya implementado. A continuación, puede probar el servicio utilizando "WCF Test Client (wcfTestClient.exe), o su propio cliente, para encontrar y corregir cualquier error potencial". La instalación predeterminada es C: / Archivos de programa / Microsoft Visual Studio 10.0 / Common7 / IDE. Puede configurarlo para usar su aplicación MainUI como el cliente. El archivo de ayuda WcfSvcHost.chm en el mismo directorio tiene una sección para usar un cliente personalizado en Escenarios para usar el Servidor de servicio de ECF. Si prefieres, aquí está el enlace para ayudar en el sitio web de MS: Usar WCF Service Host (wcfSvcHost.exe) .




Configure su solución para el inicio de proyectos múltiples. Hago esto para una aplicación similar. VS lanza el WCF y el cliente automáticamente y puedo establecer puntos de ruptura en cualquiera de ellos.

El orden de inicio es el orden en el que selecciona los proyectos.

Haga clic con el botón derecho del mouse en su solución y seleccione ''elegir proyectos de inicio''. A continuación, seleccione varios proyectos de inicio y seleccione los proyectos.


Ejemplo de cómo iniciar un proceso y adjuntarlo a Visual Studio 2010 con EnvDTE (la versión es relevante).

//c:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/PublicAssemblies/EnvDTE.dll using Process = EnvDTE.Process; System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo.FileName = System.AppDomain.CurrentDomain.BaseDirectory + @"/YourProcess.exe"; //Start the process p.Start(); //Wait for process init System.Threading.Thread.Sleep(1000); bool attached = false; //did not find a better solution for this(since it''s not super reliable) for (int i = 0; i < 5; i++) { if (attached) { break; } try { EnvDTE.DTE dte2 = (EnvDTE.DTE)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.10.0"); EnvDTE.Debugger debugger = dte2.Debugger; foreach (Process program in debugger.LocalProcesses) { if (program.Name.Contains("YouProcess.exe")) { program.Attach(); attached = true; } } } catch (Exception ex) { //handle execption... } }


Intente usar System.Diagnostics.Debugger.Break () en el código. Si no se adjunta un depurador, al ejecutar ese código se le pedirá que adjunte un depurador y puede elegir la instancia existente.



Si entiendo correctamente, Macro puede ser contestada:

en Vs:

  1. Herramientas-> Macros-> grabar Temporalmente Macro (Ctrl + Mayús + r)
  2. Adjunte VS para procesar como de costumbre (ctrl + alt + p)
  3. Detener grabación macro (ctrl + shift + r)
  4. Vaya a Ver-> Otras ventanas-> Explorador de macros (CTRL + F8)
  5. Encuentra tu Macro Temporal (en algún lugar de MyMacros-> RecordingModule) y cambia el nombre
  6. Ahora, vaya a Herramientas-> Opciones-> Teclado y encuentre su macro (en "Mostrar comando que contiene el nombre de escritura de su macro)
  7. en "Pulsar teclas de método abreviado" vincularlo a algún método abreviado de tecla (tengo mi macro en CTRL + MAYÚS + K;))
  8. Presionar OK
  9. Sea feliz

Si esto es para un servicio de Windows WCF alojado en sí mismo, debe configurar su host de servicio WCF configurable para que se ejecute en la consola o como un servicio de Windows. Cuando haya ejecutado la consola activada, puede iniciar la depuración desde Visual Studio.

Crea una configuración de aplicación llamada "RunInConsole". En su método de inicio de host de servicio, tenga el siguiente código:

public class MyWindowsService : ServiceBase { public static void Main(string[] args) { // if configuration says to run in the console, run the service in a console app. otherwise, use windows // service to host application if (ConfigurationManager.AppSettings["RunInConsole"] == "true") { using (ServiceHost host = new ServiceHost(typeof(MyService))) { host.Open(); Console.WriteLine("Press <Enter> to terminate the Host application."); Console.ReadLine(); } } else ServiceBase.Run(new MyWindowsService ()); } }

En todos los entornos en los que se implementa, siempre tendrá esta configuración configurada en falso o, de lo contrario, el servicio no podrá iniciarse, pero al realizar una depuración local, la configurará como verdadera.