Предисловие: у нас есть веб-серверы с балансировкой нагрузки и полноценное веб-приложение wcf api.В нашем веб-приложении у нас есть несколько ссылок, добавленных с помощью пакетов nuget или других проектов Visual Studio.На прошлой неделе я добавил новый проект (PLEGateway), который представляет собой слой данных в нашей системе, а также некоторые вызовы API в стороннюю систему.Код (bin) публикуется на файловом сервере и имеет соответствующие разрешения, чтобы веб-серверы могли его видеть.
После развертывания я столкнулся с ужасной Не удалось загрузить файл или сборку 'PLEGatewayCore, Версия = 1.0.0.6, Культура = нейтральная, PublicKeyToken = null' или одна из ее зависимостей.Доступ запрещен. ошибка.
Странно то, что, похоже, только периодически выдает эту ошибку.Это значит, что это сработает, вернитесь через некоторое время и попробуйте снова, и это не удастся.Подожди, вернись, и все будет работать внезапно.«некоторое время» определяется от 5 минут до ночи, так что я просто пытаюсь выполнить его через почтальона случайным образом.
Я просмотрел Google и другие SO вопросы по этой проблеме, и все они, похоже, указывали на проблемы с разрешениями.на временных папках asp.net.Я подтвердил, что права доступа настроены правильно.Пул приложений IS включен для 32-разрядных приложений.Все другие методы в веб-приложении работают, и только те, которые ссылаются на какие-либо функции в этой dll, вызывают ошибки.
Я наконец-то начал смотреть на Process Explorer для нашего файла W3wp.exe для этого пула приложений и когда я смотрю наНа вкладке сборок .NET один сервер загружает мою dll, а другой - нет, если смотреть на раздел общего доступа AppDomain.
В целом мой вопрос таков: почему один сервер загружает библиотеки DLL, а другой - нет, когда их конфигурация IIS также извлекается из того же расположения (общая конфигурация)?