Теневая загрузка IIS и кэширование через класс MemoryCache .Net - PullRequest
0 голосов
/ 13 сентября 2018

Существует устаревший проект, в котором мы используем файл DLL, взаимодействующий со сторонним сервером, для получения данных ответа. DLL использует файл конфигурации, содержащий некоторую информацию, относящуюся к серверу. Этот файл конфигурации должен присутствовать в том же месте, что и DLL.

При использовании из консольного приложения файл DLL успешно обменивается данными со сторонним сервером.

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

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

В случае, если теневая загрузка включена, модуль, использующий кэш, работает нормально, но при подключении к серверу DLL выдает ошибку.

Любые предложения или обходные пути высоко ценятся.

...