Hola!
Desde una aplicación WEB ASP estoy enviando a imprimir a una impresora de red.
En la página web hay un link que ejecuta la siguiente instrucción:
RawPrinterHelper.SendStringToPrinter("\\192.168.0.  7", cadenaImpresion);
 
pero se cae en el método OpenPrinter.
 
¿Cómo puedo saber a priori si la aplicación está viendo la impresora?
Le hago ping a la dirección 192.168.0.7 y contesta.
 
¿Hay algo que pueda ejecutar desde la aplicación web para que me muestre la lista de impresoras disponibles que ve el servidor?
Por que entiendo que quien envía a imprimir a la impresora 192.168.0.7 es el server donde está el IIS que corre la aplicación WEB y no el PC desde dónde se está ejecutando?
 
o
 
¿Puedo enviar a imprimir una línea usando la clase RawPrinter a las impresoras que ve el PC local?
 
¿Puedo abrir una ventan de dialogo para elegir la impresora del PC local?
 
Intenté con :
           // Allow the user to select a printer.
               PrintDialog pd  = new PrintDialog();
               pd.PrinterSettings = new System.Drawing.Printing.PrinterSettings();
                if (DialogResult.OK == pd.ShowDialog());
               {
                   //Envía a la impresora:
                   RawPrinterHelper.SendStringToPrinter(pd.PrinterSet  tings.PrinterName, cadenaImpresion);
               }
 
Pero me da el siguiente mensaje de error:
Error al imprimir ...
. Showing a modal dialog box or form when the application is not running in UserInteractive mode is not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application
 
Agradecería mucho la ayuda 
  
 
