Проблема с кластеризацией рабочих процессов в .NET - PullRequest
0 голосов
/ 09 октября 2009

Я пытаюсь воспроизвести ферму серверов в своей тестовой среде, чтобы попробовать что-то для приложения, которое я занят разработкой.

У меня есть два веб-сервера с IIS 6.0 и 7.0 соответственно, на каждом из которых размещена служба рабочего процесса с одинаковыми библиотеками. Они используют постоянную базу данных.

Когда ServerA сохраняет рабочий процесс в постоянном хранилище, при последующем запросе ServerB готов загрузить экземпляр рабочего процесса и выполнить с ним некоторую работу. Как только ServerB сохранил рабочий процесс, ServerA получает исключение сериализации при попытке выполнить дальнейший вызов рабочего процесса. Я получаю такое же поведение, если использую другой сервер, как ServerB.

И я могу решить проблему, используя два разных сервера и исключив ServerA из уравнения.

Мой вопрос, однако: как я могу отладить, почему ServerA не будет загружать рабочие процессы, сохраненные на других машинах?

Обновление - я попробовал с двумя серверами IIS 6.0, одной и той же ОС и одинаковыми сборками со строгими именами - и у меня возникла та же проблема

1 Ответ

1 голос
/ 09 октября 2009

ОК, я понял.

На сервере A было установлено исправление для .NET, что означало, что фактическая двоичная сигнатура одного из сериализуемых классов отличалась.

По чистой случайности его можно десериализовать одним способом, а не другим.

Я загрузил исправление на всех серверах, и теперь сериализация работает правильно.

...