I am calling WatiN from a C# windows service. When I invoke WatiN it throws the following exception. The CurrentThread needs to have it’s ApartmentState set to ApartmentState.STA to be able to automate Internet Explorer
I have tried starting up a thread and setting the apartment state via
mythread.SetApartmentState(ApartmentState.STA)
but that resulted in another error
Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack.
I also tried adding an attribute to the Service entry point.
static class Program
{
[STAThread]
static void Main()
{
...
Any ideas?
I know Benjamin’s already posted a ‘working’ answer, but I thought I’d add a couple of things I’ve experienced when I’ve got this error when trying to execute WatiN tests:
For NUnit, you should add something like this to your app.config for the tests:
In MbUnit, modify your TestFixture attribute like this:
HTH,
Pete.
Ha – it’s actually in the documentation. Doh!
http://watin.org/documentation/sta-apartmentstate/