Существует устаревший проект, в котором мы используем файл DLL, взаимодействующий со сторонним сервером, для получения данных ответа. DLL использует файл конфигурации, содержащий некоторую информацию, относящуюся к серверу. Этот файл конфигурации должен присутствовать в том же месте, что и DLL.
При использовании из консольного приложения файл DLL успешно обменивается данными со сторонним сервером.
Когда мы используем эту DLL в проекте веб-API, мы не получаем ответ от DLL, но при отладке мы обнаружили, что возможной причиной этого является то, что файл конфигурации для DLL не копируется во временную папку. После обсуждения проблемы в онлайн-сообществе можно отключить функцию теневого копирования. Мы попробовали этот подход, и веб-приложение работало нормально. Я предполагаю, что в данный момент все движется в правильном направлении.
В приложении имеются различные модули, один из которых взаимодействует с DLL, а другой - модуль с кодом конфигурации кэша и использует данные, хранящиеся в кэше, для выполнения бизнес-логики. С учетом сказанного проблема заключается в том, что после отключения теневого копирования наш кэш в приложении внезапно очищается, и код не может получить доступ к сохраненным значениям, хотя мы получаем ответ от DLL.
В случае, если теневая загрузка включена, модуль, использующий кэш, работает нормально, но при подключении к серверу DLL выдает ошибку.
Любые предложения или обходные пути высоко ценятся.