MachineKey в web.config не синхронизирован между двумя приложениями IIS - PullRequest
0 голосов
/ 19 февраля 2019

У нас есть служба ASP.NET 4.5 WebAPI, которая размещается на двух отдельных экземплярах AWS, которые находятся за балансировщиком нагрузки.Обе эти машины имеют стандартный раздел конфигурации system.web, содержащий элемент machineKey с установленными ключами дешифрования и проверки и алгоритмами.На обеих машинах web.configs идентичны :

<system.web>
    ...
    <machineKey decryption="AES" decryptionKey="..." validation="SHA1" validationKey="..." />
    ...
</system.web>

Эти ключи используются промежуточным программным обеспечением OAuth для дешифрования / проверки токенов носителя в запросах.

За последние два года все работало абсолютно нормально, но в прошлом месяце запросы, поступающие во второе веб-окно, не выполнялись из-за того, что токен носителя OAuth кажется недействительным.

Если мы одновременно запускаем только одну «ветвь» веб-балансировщика, все в порядке, независимо от того, какая ветвь обрабатывает все запросы.Но если оба работают, запросы ко второму ящику терпят неудачу.Это странно, поскольку не было никаких изменений кода и каких-либо изменений среды, о которых мы знаем, ни в веб-окнах, ни в балансировщике нагрузки.

Все это говорит о том, что обе машины используют разные машинные ключи, хотяони оба жестко запрограммированы в web.config.

Есть ли какой-то способ, которым ключ машины каким-то образом переопределяется?Есть ли другие объяснения того, что может пойти не так?

1 Ответ

0 голосов
/ 19 февраля 2019

Проверьте соответствие системных часов на обоих экземплярах AWS.Кажется, я вспомнил, что это случилось со мной несколько лет назад.

...