У меня есть служба, которая самостоятельно размещается в приложении WPF. Также у меня есть клиент WPF и клиент xamarin android, которые используют клиент WCF для использования сервиса.
Я понял, что могу без проблем звонить с клиента WPF, но с клиента Android я могу звонить только 2 раза, позже приложение перестает отвечать, и через некоторое время я получаю исключение тайм-аута.
Я прочитал темы, в которых говорится, что для решения проблемы необходимо закрыть прокси-сервер клиента, поскольку количество подключений на сервере ограничено, но это не решает проблему. На самом деле, я пытался не закрывать прокси-сервер в приложении WPF, и у меня нет проблем, и я пытался закрыть прокси-сервер в приложении Android, в конечном итоге try / catch и в блоке using, в обоих случаях приложение перестает отвечать.
Я пробую решения в темах типа , и , , но они не решают мою проблему.
Код следующий:
Клиент WPF:
int _numeroLlamadas = 0;
GestorAplicacionesServiceProxy _proxy = new GestorAplicacionesServiceProxy();
private void BtnTest_Click(object sender, RoutedEventArgs e)
{
txtResultado.Text = _proxy.GetData(2);
_numeroLlamadas = _numeroLlamadas + 1;
txtNumeroLlamadas.Text = _numeroLlamadas.ToString();
}
В этом случае у меня есть счетчик, чтобы узнать, сколько раз я могу позвонить в службу, и у меня нет проблем, чтобы позвонить 20, 30, 40 ... раз.
В приложении для Android у меня есть этот код в событии нажатия кнопки:
using (GestorAplicacionesServiceProxy miProxy = new GestorAplicacionesServiceProxy(_binding, _endPointAddress))
{
string miResultado = miProxy.GetData(2);
Toast.MakeText(this, "Hola", ToastLength.Short).Show();
}
В этом случае я использую блок using для удаления прокси, когда я закончу его использовать. Но я могу звонить только 2 раза, и при следующем вызове приложение выдает исключение тайм-аута.
Служба, контекстный режим экземпляра для каждого вызова.
Как работает клиент WPF, а приложение Android - нет, я подумал, что, возможно, причина в том, что приложение Android имеет другие соображения.
Спасибо.