2017-11-21 5 views
0

私のアプリはWCFを使用してサーバーとappからデータを転送しています。これはうまくいきます。しかし、最近、アプリが一定時間後に動作しないと、常にタイムアウト例外が発生します。タイムアウト例外がスローされたとき、winformアプリケーションはWCFを正常に呼び出すことができます。デバッグを再開すると、アプリケーションはWCFを再度呼び出すことができますし、しばらくしてからタイムアウト例外を再びスローします。WCFのXamarinにタイムアウトエラーがあります

このような私のコード:

// CreateBinding 
    private static BasicHttpBinding CreateBasicHttp() 
    { 
     BasicHttpBinding binding = new BasicHttpBinding 
     { 
      Name = "basicHttpBinding", 
      MaxBufferSize = 2147483647, 
      MaxReceivedMessageSize = 2147483647 
     }; 
     binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None; 
     TimeSpan timeout = new TimeSpan(0, 0, 30); 
     binding.SendTimeout = timeout; 
     binding.OpenTimeout = timeout; 
     binding.ReceiveTimeout = timeout; 
     return binding; 
    } 

// Create Endpoint 

    private static EndpointAddress CreateEndPoint(string serviceName) 
    { 
     string serviceUrl = App.RemoteUrl + serviceName + ".svc"; 


     EndpointAddress EndPoint = new EndpointAddress(serviceUrl); 
     return EndPoint; 
    } 

// Create binder 
public static WCFBinder GetBinder<T>() 
    { 
     WCFBinder binder; 
     Type t = typeof(T); 
     string serviceName = t.Name.Substring(1, t.Name.Length - 1); 
     binder.Binding = CreateBasicHttp(); 
     binder.EndPoint = CreateEndPoint(serviceName); 
     return binder; 
    } 

    // Create a client 
    var binder = SDHCommonMethod.GetBinder<IAAA001BLLService>(); 

    IAAA001BLLService asc = new AAA001BLLServiceClient(binder.Binding, binder.EndPoint); 

    // Call WCF 
    var obj = await Task.Factory.FromAsync(asc.BeginSelectAAA001, asc.EndSelectAAA001, dto, TaskCreationOptions.None); 

答えて

0

コードは正しいです。 vs2017では、それはうまくいくかもしれません。私のvs2015は何か間違っているかもしれません。

関連する問題