WCF サービスに奇妙な問題があります。pollingDuplexBinding と Silverlight クライアントを使用しています。バインディングは、このコードによって web.config に登録されました
<bindingElementExtensions>
<add name="pollingDuplex" type="System.ServiceModel.Configuration.PollingDuplexElement, System.ServiceModel.PollingDuplex" />
</bindingElementExtensions>
最初の呼び出しではすべて問題ありません。サービスはデータをすばやく返します。しかし、2 回目の呼び出しでは 5 分以上実行されます。大きなタイムアウトを設定すると、結果がクライアントに返されます。それ以外の場合は、TimeoutException がスローされます。私が呼び出している WCF メソッドは何もしません - 短い文字列を返すだけです。
WCF トレースによると、クライアントがこのメソッドを呼び出してから 5 分後に 2 番目のサービス呼び出しが行われ、すぐに実行されます。これらのサービス属性を使用します。
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.Single)]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
クライアントコードです
var binding = new PollingDuplexHttpBinding(PollingDuplexMode.SingleMessagePerPoll);
var address = new EndpointAddress("/SportService.svc");
_proxy = new SportDuplexClient(binding, address);