大きなデータ ファイルを「Azureテーブルストレージ」にアップロードする非常に時間のかかる方法を持つ WCF サービスがあります。
次のように、クライアント側で実行時にタイムアウトを設定しました:-
binding = new BasicHttpBinding();
binding.CloseTimeout = TimeSpan.FromMilliseconds(2147483647.0);
binding.OpenTimeout = TimeSpan.FromMilliseconds(2147483647.0);
binding.ReceiveTimeout = TimeSpan.FromMilliseconds(2147483647.0);
binding.SendTimeout = TimeSpan.FromMilliseconds(2147483647.0);
私のweb.configには次のようにタイムアウトが設定されています:-
<bindings>
<basicHttpBinding>
<binding maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" sendTimeout="22:30:00" receiveTimeout="22:30:00" openTimeout="22:30:00" closeTimeout="22:30:00" maxBufferSize="2147483647">
<readerQuotas maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxDepth="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647" />
</binding>
</basicHttpBinding>
</bindings>
VS 2012 でコードを実行していますが、ファイルのアップロード メソッドが 60 分後に未処理の CommunicationException: The remote server returned an error: NotFound でクラッシュするという問題が発生しています。F5 を押すと、アップロードが続行されて完了します。この時点で、クラッシュが Reference.cs ファイルに表示されます。
public void EndFileUploadMethod(System.IAsyncResult result) {
object[] _args = new object[0];
base.EndInvoke("FileUploadMethod", _args, result);