Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

459
Vistas
¿Cómo se usa CefSharp en un servicio WCF?

Estoy tratando de usar el CefSharp.OffScreen(41.0.0) dentro de una aplicación de servicio WCF y recibo el siguiente error al intentar ejecutar el servicio desde Visual Studio 2013:

No se pudo cargar el archivo o ensamblado 'CefSharp.BrowserSubprocess.Core.DLL' o una de sus dependencias. El módulo especificado no se pudo encontrar.

Descripción: se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Revise el seguimiento de la pila para obtener más información sobre el error y dónde se originó en el código.

Detalles de la excepción: System.IO.FileNotFoundException: no se pudo cargar el archivo o ensamblar 'CefSharp.BrowserSubprocess.Core.DLL' o una de sus dependencias. El módulo especificado no se pudo encontrar.

El ensamblaje mencionado está presente en la carpeta bin del proyecto, así como todos los ensamblajes necesarios enumerados en el sitio web de CefSharp . Si de hecho se requiere otro ensamblaje, no he descubierto cuál es.

Algunos otros puntos que vale la pena mencionar:

  • Es fácil de reproducir: comience con la plantilla "Aplicación de servicio WCF" de VS2013, simplemente agregue el paquete CefSharp.Offscreen Nuget.
  • Construyo el proyecto en x86.
  • CefSharp también depende de los redistribuibles de Visual Studio C++ 2012. Copié esos archivos en la carpeta bin pero sigo teniendo el mismo error.
  • Probé las soluciones en la pregunta SO aquí , sin éxito.
  • CefSharp funciona bien cuando se hace referencia desde una aplicación de consola o una aplicación WPF.
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

pocos puntos,

IIS no puede acceder al escritorio

Por lo tanto, no puede ejecutar nada que necesite un escritorio. Su consola y la aplicación WPF tienen acceso al escritorio y se denominan procesos interactivos del usuario.

CEF necesita escritorio

Cef necesitará el administrador de ventanas para crear una ventana, sin la cual no puede mostrar la página. Esta es la razón por la que el error es engañoso aquí, ya que IIS no puede cargar ensamblajes dependientes que requieren interacción con el escritorio a menos que se seleccione Allow service to interact with Desktop para el proceso de IIS en los Servicios de Windows.

La aplicación de consola es la única opción con Iniciar sesión

Deberá ejecutar su aplicación como consola y deberá iniciar sesión en el escritorio, permitir que IIS interactúe con el escritorio no es una buena opción y ni siquiera sé qué tipo de problemas podría tener.

Puede configurar su servidor para que inicie sesión automáticamente con algún usuario modificando el registro y configurando su aplicación de consola en su inicio. Entonces, de esta manera, cada vez que se reinicie el servidor, su servidor iniciará sesión automáticamente con el usuario especificado y se iniciará su aplicación de consola. (Windows 8.1 tiene poca dificultad pero obtendrá alguna solución).

Servicio de Windows personalizado con acceso de escritorio

Puede cambiar su tipo de aplicación a Servicio de Windows en lugar de Consola y puede instalar su servicio de Windows que permite el acceso al escritorio que se muestra en este artículo, tenga cuidado, hay problemas de que esto funcionará solo si alguien está conectado al servidor.

http://www.codeproject.com/Articles/4891/Interact-With-Desktop-when-Installing-Windows-Serv

Navegador sin cabeza PhantomJS

Hay un navegador sin cabeza PhantomJS que puede ejecutar en el servicio IIS/Windows sin necesidad de interactuar con el escritorio; sin embargo, deberá cambiar su código a JavaScript en lugar de C#. También hay otras bibliotecas para administrar PhantomJS desde su aplicación.

over 4 years ago · Santiago Trujillo Denunciar

0

Según este enlace , parece que la solución a este problema es ejecutar el código CefSharp en un subproceso [STAThread].

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda