Hello.
Can you provide more details? These are the main questions I have at the moment:
Can you tell which statement is throwing the exception? Is it at the SubscribeItem? Or is it somewhere in the event handler?
Do you get any more information with the exception? A call stack maybe?
Can you post more of your code/ Specifically, the event handler code, and indicate how/when in your code the initialization part you already posted is called. If you can post the whole, or maybe stripped-down version of it, that would be great. We have not done any specific tests with WCF.
Are you explicitly creating more AppDomains? Does the error appear maybe just when the code is run under the Visual Studio Test harness (which initializes AppDomains differently?)
QuickOPC is thread safe, but there are specific concerns in relation to event handlers and thus the thread safety of your own code (the documentation has a chapter about it; basically the events can be fired on an arbitrary thread, unless a proper synchronization provider is passed to QuickOPC).
In general, AppDomains are more akin to processes (or processes inside processes), not to threads. It is true that QuickOPC.NET objects (same as other .NET objects) cannot be freely passed between AppDomains. The question is, whether it's something in your code that does this, or whether it has to do with WCF or the QuickOPC itself.