Эта проблема заняла у нас более 2 недель, но я не смог найти нигде решения в Интернете.
Постановка задачи:
Мы создали службу WCF, которая имеет 3 уровня:
1) Сервисный уровень WCF
2) Фасадный уровень
3) Агентский уровень
Уровень 1 использует сторонние dll для использования внешнихзаключает контракт и вызывает фасадный слой (уровень 2) для делегирования запроса.Уровень 2 просто перенаправляет на уровень агента (уровень 3) после бизнес-проверок или любой предварительной обработки.На уровне 3 используются те же сторонние библиотеки DLL (как и на уровне 1) для вызова их API для выполнения бизнес-операций.
После развертывания все работает отлично.Поскольку многие запросы поступают хорошо обслуживаются службой.До тех пор, пока кто-либо преднамеренно или в определенный момент времени на производстве перезапустит пул приложений, на котором размещен этот сервис.
После утилизации сервис начинает вести себя странно.Запросы все еще обрабатываются, когда я отлаживаю код.На уровне агента (уровень 3) запросы бизнес-операций по-прежнему достигаются, как и ожидалось, но затем появляется какое-то готовое сообщение об ошибке проверки бизнеса, которое начинает генерироваться из сторонних библиотек.И он продолжает выдавать ту же ошибку, то же поведение, до тех пор, пока я не уберу временную папку ASP.Net или повторно опубликую код службы в IIS.Эта ошибка проверки бизнеса как таковая не останавливает, не нарушает и не нарушает наш сервис, но затем прерывает дальнейшую обработку на уровне 3 (на уровне агента) за пределами точки, в которой она возникла.
Я перепробовал все, что смог найти при поискев Интернете, предложенный многими разработчиками, но ничего не получалосьНемногие (не все) перечислены ниже того, что я пробовал:
a.Очистить кэш (как на стороне клиента, так и на стороне сервера стороннего приложения) и повторно запустить тесты
b.Создан другой пул приложений для службы wcf и повторно выполненные тесты
c.Пробовал в других средах разработки и локальной среде разработки - повсюду реплицируется проблема
d.Проверено путем изменения настроек уровня публикации и связанных пулов приложений в IIS
e.Очистил файл AssemblyInfo от всех настроек всех проектов в решении.
f.играются с разными настройками на уровне пула приложений, например один с двумя флагами перекрытия.
g.предоставил все виды разрешений на уровне временных папок ASP.Net и IIS.
Кажется, что некоторые ссылки ломаются во время выполнения.
В других сервисах нашего решения мы никогда не использовали контракты от третьих сторон.party dlls но всегда создавал обертку и они отлично работают.Сторонние dll до сих пор всегда использовались в слое агента (уровень 3).
Я использовал их на уровне 1. Технически я не нашел ничего плохого в использовании их даже на уровне 1 (служебный код).Может быть, я ошибаюсь или мой дизайн, не уверен.Но то, что происходит, заняло более 2 недель.
Технологический стек:
IIS 7
Visual Studio 2017
MS .Net Framework 4.5.2
, пожалуйста, предложите.