У нас есть система плагинов в службе WCF, которая проверяет библиотеки, помещенные в папку bin, на наличие определенных атрибутов уровня сборки и загружает их. Это позволяет настраивать определенные сервисные вызовы в зависимости от того, какой клиент делает вызов. Это отлично работает большую часть времени. Однако иногда кажется, что dll теряется, что заставляет службу возвращаться к реализации по умолчанию для каждого клиента. До сих пор решение заключалось в том, чтобы просто переместить файл dll из папки bin и обратно. Это заставляет asp.net забрать файл, и настройки снова начинают работать.
Я в недоумении, почему сборка так пропускается через определенное время. Любые идеи относительно того, что может быть причиной этого?
Изменить: проблема сформулирована более четко
Наши сервисы используют фабрику сервисов для предоставления пользовательских реализаций в зависимости от того, какой клиент вызывает код. Если пользовательской реализации нет, мы выдаем реализацию по умолчанию. Мы используем GetAssemblies для проверки сборок, которые украшены атрибутом, определяющим их как пользовательскую реализацию и связывающим их с клиентом. Проблема в том, что GetAssemblies перестает возвращать пользовательскую сборку клиента, даже если библиотека остается в папке bin. Перемещение dll из корзины и обратно в нее решит проблему примерно на неделю, пока она не повторится.