We have a plugin system on a WCF service that checks libraries placed in the bin folder for certain assembly level attributes and loads them. This allows customization of certain service calls based on which client is making the call. This works great most of the time. However, sometimes it seems to lose the dll, which causes the service to revert back to the default implementation for every client. The solution so far has been to just move the dll file out of the bin folder, and back in. This causes asp.net to pick up the file and customizations start working again.
I'm at a loss for why the assembly is getting missed like that after a certain amount of time. Any ideas as to what might be causing this?
Edit: Problem stated more clearly
Our services use a service factory to hand out custom implementations based on what client is calling the code. If there is not a custom implementation, we hand out a default implementation. We use GetAssemblies to check for assemblies that are decorated with an attribute designating them as a custom implementation and associating them with a client. The problem is that GetAssemblies stops returning a client's custom assembly even though the library remains in the bin folder. Moving the dll out of bin, and back into it will fix the issue for about a week until it happens again