Я прочитал эту отличную запись в блоге о бедах сильного именования и удаленного взаимодействия, которые я испытываю.
По сути, клиентское приложение всегда должно загружать та же версия общей сборки со строгим именем, используемой сервером, когда сервер возвращает пользовательский тип из общей сборки клиенту.Т.е.:
Проблема, с которой вы сталкиваетесь, заключается в следующем: как только существует разница между строгим именем библиотеки общих типов на клиенте и строгим именем библиотеки общих типов на серверевсе ломается.Удаленное взаимодействие выдает исключения, как только начинается какое-либо заметное взаимодействие клиент / сервер.
Это довольно раздражает, поскольку мы обновляем номер версии при сборке, даже если в общую сборку не было внесено никаких изменений.Реализация, возможно, не изменилась, просто номер версии.
В настоящее время я обхожу это, применяя обязательную политику перенаправления / публикации - однако, кажется, что много инженерии просто для того, чтобы соответствовать строгим правилам в отношении разрешения сборки.
Я пробовал не строго называть общую сборку, как рекомендовано в блоге, которая работает нормально / я не получаю каких-либо исключений удаленного взаимодействия - однако, этоэто рекомендуется?
Я не добавляю общую сборку (которая просто содержит интерфейсы) в GAC, и при этом я не слишком беспокоюсь о подделке, и пока я тщательно обновляю интерфейсы, чтобы поддерживать обратную совместимость / не сломать существующих клиентов этого достаточно, следовательно, нет необходимости в сильных именах?
Заранее спасибо.
PS: я знаю о WCF, но мне все еще нужноподдерживать удаленный интерфейс.