Сбой вызова Monotouch WCF с ошибкой SIGILL с 10-й попытки - PullRequest
2 голосов
/ 24 июня 2011

Используя последнюю версию monotouch (4.0.3), мы вызываем сервисы WCF. После выполнения звонка 10-я попытка вылетает. Я создал тестовую программу, которая вызывает простой вызов WCF, чтобы проверить, работает ли служба. Отвечает сообщением ОК. На 10-м звонке не получается. Пробовал Настройки конфигурации сервера, Закрыть, Утилизировать на клиенте все те же результаты. Пример кода тестового сегмента ниже:

    public override void ViewDidLoad ()
    {
        base.ViewDidLoad ();


        mailButton.TouchUpInside += (o, e) =>
        {

        BasicHttpBinding BindType = new BasicHttpBinding();
        BindType.ReceiveTimeout = new TimeSpan(0,0,15);

        EndpointAddress ep = new EndpointAddress(@"http://myservice.mydomain.com/MyBusServiceBusService/MFService.svc/BaseService");
        BaseServiceClient MFService = new BaseServiceClient(BindType, ep);
        MFService.Endpoint.Binding.ReceiveTimeout = new TimeSpan(0,0,10);
        MFService.BaseServiceTestCompleted += delegate(object sender, BaseServiceTestCompletedEventArgs ex) 
          {
              UIAlertView alert = new UIAlertView();
              alert.Title = "Base Service Test";
              alert.AddButton("Ok");
              ++timesThrough;
              alert.Message = ex.Result + " Times=" + timesThrough.ToString();;
              alert.InvokeOnMainThread(delegate{alert.Show();  });
              var clientObject = sender as BaseServiceClient;
                if (clientObject != null && clientObject.State == System.ServiceModel.CommunicationState.Opened)
                {
                       (clientObject.ChannelFactory).Close();
                     (clientObject).Close();
                      ((IDisposable)clientObject).Dispose();
                     clientObject = null;
                }
              if (MFService != null)
                 {

                    (MFService.ChannelFactory).Close();
                     (MFService).Close();
                      ((IDisposable)MFService).Dispose();
                     MFService = null;
                 }

             GC.Collect();



        };

        try
        {
          MFService.BaseServiceTestAsync();

        }
        catch (Exception ex)
        {
          UIAlertView alert = new UIAlertView();
          alert.Title = "Base Service Test";
          alert.AddButton("Ok");

          alert.Message = ex.Message ;
          alert.InvokeOnMainThread(delegate{alert.Show();});
          MFService = null;
          GC.Collect();
        }



        };
    }

1 Ответ

0 голосов
/ 24 августа 2011

Эта проблема была исправлена ​​в последней версии MonoTouch (4.1 beta). Версия 4.2 (стабильная) должна быть доступна в ближайшее время.

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