Методы WCF вызываются дважды, когда их HTTP-глагол PUT или DELETE - PullRequest
0 голосов
/ 29 мая 2019

У меня есть служба WCF с несколькими конечными точками, которую я вызываю из AJAX / JS.Все работает нормально, за исключением, если я иду к моему журналу таблицы.Я храню каждый вызов этой службы wcf в таблице, и я заметил, что, если глагол, используемый для вызова методов, это PUT или DELETE, метод вызывается дважды.Конечно, это не влияет на данные, так как PUT и DELETE должны быть идемпотентными (и я сделал соответствующие хранимые процедуры, чтобы действовать как таковые).

Копая эту проблему, я изменил PUT на POST в одномметод, и тогда он был вызван только один раз.Изменил его обратно на PUT, и его снова вызывали дважды.Так что это не может быть связано с DataContracts, как я прочитал в другом посте.Я использовал SVCTraceViewer, и ничего неожиданного не появилось, кроме двойных вызовов, конечно.Я также должен добавить, что 1) Публикация WebDav НЕ установлена ​​2) Я проверил в IIS, и у обработчиков svc все глаголы авторизованы Тем не менее, я все больше и больше убежден, что это проблема IIS, но я не знаю, где искать,Любой совет приветствуется.Спасибо за потраченное время на чтение этого поста ... и на размышления о решении моей проблемы.

1 Ответ

0 голосов
/ 29 мая 2019

ОК, нашел его. Думал, что выложу ответ: я использовал код статуса ответа 204 для успешной отправки и удаления запросов. Однако кажется, что код 204 просит страницу остаться и фактически запрашивает тот же URL-адрес во второй раз. Поменял на 202: проблема решена. С наилучшими пожеланиями, чтобы сложить o.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...