Llamo a WatiN desde un servicio de Windows C#. Cuando invoco WatiN arroja la siguiente excepción. El CurrentThread necesita tener que está establecido ApartmentState a ApartmentState.STA para poder automatizar Internet ExplorerWatiN: The CurrentThread necesita tener su ApartmentState configurado en ApartmentState.STA para poder automatizar Internet Explorer
He tratado de poner en marcha un hilo y establecer el estado de apartamento a través de
mythread.SetApartmentState(ApartmentState.STA)
pero que termina en un error
No se puede evaluar la expresión porque el código está optimizado o un marco nativo está en la parte superior de la pila de llamadas.
También intenté agregar un atributo al punto de entrada al Servicio.
static class Program
{
[STAThread]
static void Main()
{
...
¿Alguna idea?
No entiendo el segundo error (en negrita) . ¿Puedes mostrar más código? Tuve un requisito similar y crear un nuevo hilo, establecer ApartmentState y llamar a .Start() seguido de .Join(), básicamente haciendo solo las cosas relacionadas con STA allí, funcionó bien para mí. –
Para aclarar más.Creé un hilo dentro de mi servicio y SetApartmentState (ApartmentState.STA) que invoca mi código WATiN. Eso arrojó la siguiente excepción. – Jonathan
¡Hola Benjamin! De hecho, estás en lo cierto! No me estaba uniendo a mi hilo. Deberías haber publicado como la respuesta;) – Jonathan