У меня есть веб-служба REST, работающая в лазурном веб-ферме, которую нужно защитить от вложений воспроизведения.
Каждый запрос содержит уникальный Криптографический одноразовый номер (токен, который разрешен только один раз) в течение нескольких минут.
Сейчас я использую базу данных для создания записи с одноразовым номером в качестве первичного ключа. Это означает, что если один веб-сервер может вставить строку в базу данных, я уверен, что ни один другой веб-сервер не получил запрос с таким же одноразовым номером. На самом деле я использую табличное хранилище (с ключом строки / ключом раздела в качестве первичного ключа) ... а не SQL Azure.
Моя проблема в том, что хранилище таблиц довольно медленное (для вставки строки требуется 20-30 мс), и я ищу более быстрое решение.
Существует ли распределенная разделяемая библиотека транзакционной памяти для .NET? Важно, чтобы я не вводил ни одной точки отказа (например, с базой данных в памяти, работающей на одном сервере).
Бонус: поскольку он работает В Azure я не знаю имен или IP-адресов своих серверов, и количество серверов в веб-ферме меняется довольно часто.