weighbridgeに接続されているWCFサービスを開発中です。 体重が変更されたときに、接続されているすべてのクライアントにメッセージを送信したいと考えています。 weighbridgeは1つのクライアントにしか接続できないので、wsDualHttpBindingとコールバックによってクライアントと通信するWCFを開発しました。WCF wsDualHttpBindingコールバックの送信を停止する
このソリューションは機能しますが、長時間(1〜2日後)WCFサービスはコールバックの送信を停止します。 私はロガーを持っているので私のサービスが分かっていますが、クライアントはコールバックを受け取っていません。私のサービスも例外をスローしません。
それは私のサービスpseduoコードです
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Reentrant, InstanceContextMode = InstanceContextMode.PerSession)]
public sealed class WeightbridgeService : IWeightbridgeService, IDisposable
public WeightbridgeService()
{
this.callback = OperationContext.Current.GetCallbackChannel<IWeightbridgeServiceCallback>();
weighbridge.WeightChanged += WeightChangedEventHandler;
timer.Elapsed += TimerOnElapsed;
timer.Start();
}
private void TimerOnElapsed(object sender, ElapsedEventArgs elapsedEventArgs)
{
timer.Stop();
this.callback.SendWeightData(this.weightData);
timer.Start();
}
と設定
<bindings>
<wsDualHttpBinding>
<binding name="longTimeoutBinding" receiveTimeout="00:45:00" sendTimeout="00:45:00" openTimeout="00:45:00" closeTimeout="00:45:00" >
<reliableSession inactivityTimeout="00:45:00" />
<security mode="None"/>
</binding>
</wsDualHttpBinding>
</bindings>
あなたは私が間違ってやっている私を助けてもらえますか? 解決策が見つかりません。