Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

449
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!