Я не могу говорить о специфике ASP.NET, в этой области может быть что-то «волшебное», но в целом ваши веб-службы должны быть спроектированы так, чтобы они были устойчивы к дублированию запросов, если в инфраструктура.
Существует несколько сценариев:
Веб-приложение выполняет сервисный вызов. Делает ли инфраструктура какие-либо попытки повторить попытку, если ответ не приходит в определенное время? Я не знаю, что здесь делает ASP.NET, я предполагаю «нет», но это очень предположение. Также ваше веб-приложение может повторить попытку. В любом случае мы можем получить один и тот же запрос дважды. Любая ответственность за обнаружение дублирующего запроса будет лежать на сервере. Это намного проще, если запрос содержит какую-то уникальную метку.
Второй сценарий - это сценарий «нетерпеливый пользователь». Пользователь нажимает отправить слишком часто. Хорошо разработанное веб-приложение предотвратит это или обнаружит это и не будет повторно отправлять веб-службу. В этом случае Сервис не должен видеть дубликатов.
Более сложный сценарий: «Вы действительно хотели купить два Rolls Royces?» Клиент отправляет запрос, давайте представим, что это запрос высокой стоимости. Затем их компьютер падает, или они теряют связь. Позже, может быть, даже с другого компьютера, пользователь пытается совершить ту же покупку, не осознавая, что первый действительно сработал. Сейчас это трудно заметить, и многие поставщики даже не пытаются, но в некоторых сценариях вам нужно сделать действительно умный сервис с обнаружением дубликатов, являющимся довольно сложным сопоставлением с образцом - для действительно ценных клиентов эти дополнительные усилия могут быть существенными ,