У нас есть служба 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
.
Есть ли какой-то способ, которым ключ машины каким-то образом переопределяется?Есть ли другие объяснения того, что может пойти не так?