Служба WCF, ссылающаяся на сторонние библиотеки DLL, перестает работать при перезапуске пула - PullRequest
0 голосов
/ 25 сентября 2018

Эта проблема заняла у нас более 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

, пожалуйста, предложите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...