2012-04-08 11 views
3

MonoTouchで/ WCFの設定WCFバインディングタイムアウトをオーバーライドすることはできませんなぜ私は、5秒にです。OpenTimeoutを設定 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

が、私はサーバサービスを閉じて(またはiphoneのwifiの&ネットワークを閉じて)、デフォルトの1のタイムアウトまでバックグラウンドでサービスに接続しようとします。どうして?ありがとう。

btw、monotouch/iPhoneでの例外は1分後にスローされますが、タイプはTimeoutException(メッセージ:操作がタイムアウトしました)でFaultExceptionまたはCommunicationExceptionではありません。上記のコードがWindowsの.netクライアントで呼び出された場合は、CommunicationExceptionをスローする必要があります。

+0

'MyServiceClient'にはタイムアウトプロパティもありますか? – jonathanpeppers

+0

申し訳ありません。いいえ、クライアントベースにはこのプロパティがありません。 – BlueSky

答えて

8

xamarinチームの返信:serviceClient.innerchannel.operationtimeout = ... ありがとうございました。

+0

このコメントはなぜ答えとしてマークされていますか?それは正しくありません... –

関連する問題