Локален IIS, 2 уеб сайта, 2 application pool-а и „споделени“ проблеми с dll

+3 гласа
45 прегледа
попитан 2016 април 25 в .NET от Nikoleta.V. (4,090 точки)
Разработихме 2 различни приложение я с VS 2013: Първото е фронт-енд на C# .NET MVC 5. Другото е уеб услуга на C# .NET WebAPI 2

И двете приложения използват newtonsoft.json nuget, но с различни версии(6.0.8 за фронт-енда и 8.0.2 за API-то)

Използваме локален IIS за тестове и дебъгване. В IIS създаваме 2 сайта с 2 отделни application pool-а.

Ако компилирам уеб услугата след фронт-енда, всичко е ок. Обаче ако компилирам първо фронт-енда и после уеб услугата, услугата се чупи заради версията 6.0.8 на newtonsoft.json! Защо?

Дали application pool-овете споделят някои dll-ки?

Намерих някои статии относно опцията „Specific version“ в референциите на проектите. Като я сложа на true, двете версии вървят паралелно. Но аз това не го искам.

Мога да ъпдейтна nuget, за да има същата версия и в двата проекта, но това е заобикалка, проблемът може да възникне с други dll-ки.

Искам да знам защо 2 application pool-а споделят dll-ки с различни версии. Имате ли някаква идея?

1 отговор

0 гласа
отговорени 2016 април 26 от valeri.hristov (7,340 точки)
Имаш ли референции от WebAPI-то към MVC-то или обратното? Най-вероятно това е проблемът.
коментиран 2016 април 27 от Nikoleta.V. (4,090 точки)
Имам собствена библиотека, която се реферира и от двете, но между API-то и MVC-то нямам референции
коментиран 2016 април 27 от valeri.hristov (7,340 точки)
Тази библиотека да не би да зависи от newtonsoft?
коментиран 2016 април 27 от Nikoleta.V. (4,090 точки)
Да, прав си. Вързана е с версия 6.0.8
коментиран 2016 април 27 от valeri.hristov (7,340 точки)
Това обяснява нещата.И двата проекта зависят от твоята библиотека,а тя зависи от конкретна версия на newtonsoft. Когато build-неш единия проект, зависимостта на библиотеката се добавя към проекта. Трябва или да махнеш тази зависимост или да конкретизираш изрично версиите в web config-а + файла на проекта, и да имаш и двете версии в папката Bin.
...