Я использую библиотеки Portable Class для создания классов обслуживания, которые используют все наши технологии пользовательского интерфейса для связи с нашими службами.WCF Client CloseAsync vs Abort()
Эти библиотеки будут поддерживать Silverlight, Asp.Net и любую другую .Net-интерфейс.
Поскольку Silverlight поддерживается, все вызовы должны быть асинхронными.
С помощью Silverlight я могу позвонить CloseAsync() сразу после вызова клиента.Method().
Однако, я нахожу, что не работает с клиентами Asp.Net.
Я не хочу использовать CloseAync() в заполненном коде, потому что если выполняется несколько асинхронных вызовов, вы можете столкнуться с проблемой синхронизации.
Я бы предпочел не придумать много логики, как бы поместить цикл while в каждый асинхронный метод, чтобы убедиться, что CloseAsync() не был вызван и не завершен.
Сейчас я тестирую только использование Abort в завершенных разделах, и все работает нормально.
Любопытно, если кто-нибудь еще знает о каких-либо проблемах, с которыми мы можем столкнуться, используя Abort?
Спасибо.
Мы используем .Net 4.5.
Спасибо за ответ. Классы будут записаны для поддержки любой привязки, которую решает пользователь. У нас может быть пользовательский двоичный файл для клиента silverlight, net.tcp для клиента WPF и т. Д. Используемый будет основываться на значении, переданном в функцию Initialize. – kfrosty
При взгляде на состояния, кажется, состояние закрывается сразу после вызова CloseAsync. Так что пока, в моей инициализации, я создаю экземпляр нового клиента, если состояние не открыто или создано. В завершенном коде я использую прерывание, если в противном случае состояние Faulted и CloseAsync(). Пока это работает как для клиентов Silverlight, так и для asp.net. – kfrosty
Что касается клиента, это будет работать нормально. Но если у вас низкая квота сеанса сеанса на сервере, возможно, что она может быть удалена (например, новым клиентам может быть отказано в новом сеансе). Это произойдет только в том случае, если у вас очень большой трафик для конечных точек сеанса, поэтому для вас это не проблема. – carlosfigueira