2012-04-08 45 views
3

的MonoTouch/WCF:爲什麼不能覆蓋的WCF綁定默認的超時設置:的MonoTouch/WCF:爲什麼不能覆蓋的WCF結合超時設置

public class MyServiceClient : ClientBase<IMyContract>,IMyContract 
{ ... } 

public void test() { 
     BasicHttpBinding basicHttpBinding = new BasicHttpBinding(); 
     basicHttpBinding.Name = "basicHttpBinding"; 
     basicHttpBinding.MaxBufferSize = int.MaxValue; 
     basicHttpBinding.MaxReceivedMessageSize = int.MaxValue; 
     basicHttpBinding.ReceiveTimeout = TimeSpan.FromSeconds(10.0); 
     basicHttpBinding.SendTimeout = TimeSpan.FromSeconds(10.0); 
     basicHttpBinding.CloseTimeout = TimeSpan.FromSeconds(5.0); 
     basicHttpBinding.OpenTimeout = TimeSpan.FromSeconds(5.0); 

     MyServiceClient client = New MyServiceClient(basicHttpBinding, new EndPointAddress(...)); 
     client.Test(); 
    } 

// Althought我設置OpenTimeout爲5秒,但是當我關閉服務器服務(或關閉iPhone的網絡),它仍然嘗試在後臺連接服務,直到默認的1分鐘超時,這很奇怪!爲什麼?謝謝。

btw,1分鐘後MonoTouch/iPhone拋出異常,類型爲TimeoutException(消息:操作已超時。)而不是FaultException或CommunicationException)。如果上面的代碼在windows.net客戶端中調用,它應該拋出CommunicationException。

+0

'MyServiceClient'是否也有超時屬性? – jonathanpeppers 2012-04-10 12:07:17

+0

對不起,不,客戶端沒有這個屬性。 – BlueSky 2012-04-10 15:07:39

回答

8

xamarin團隊回覆:serviceClient.innerchannel.operationtimeout = ... 謝謝。

+0

爲什麼此評論被標記爲答案?這是不正確的... – 2015-05-07 14:11:32

相關問題