Hi Nicko,
There are several different ways of impersonating which have different effects: Are you impersonating the calling web user? i.e.
<identity impersonate="true" />
Impersonating a specific user? i.e.
<identity impersonate="true" userName="MyUser" password="pass" />
Are you running the aspnet_wp.exe as another user? i.e.
<processModel userName="MyUser" password="pass" />
I am currently using the first method, but will need to change this to the second one. So if this really is the problem, I hope I will find it.
Also how are you configuring log4net? Are you using the DOMConfiguratorAttribute or are you explicitly calling DOMConfigurator.Configure()? If so where are you calling it? If you are using the attribute then how are you getting your loggers? Are you storing your loggers in a static field in each class?
I am doing this by calling DOMConfigurator.Configure() in Application_Start(). But I haven't defined the loggers in each class as static. Each class has its own logger, but they are not static.
While most of the internal debug goes to Console.Out the errors go to Console.Error! If you want to capture the errors you need to use Console.SetError() to redirect that as well. Doing this should allow you to see what exception is being thrown when the file cannot be opened.
Doh!! I didn't realize that! Of course, that makes sense. :-)
I will try this. But it will take a few days. I will write again, when I have done this.
Marco
