1

私はWCFサービスを持っていServiceBehavior.InstanceContextMode = InstanceContextMode.PerSessionます。

新しいセッションごとに新しいインスタンスを取得し、セッションで同じインスタンスを使用するには、どのようにサービスを Autofac に登録する必要がありますか? 現在、次の構成を使用していますが、次のような動作になりますPerCall

builder.Register(c => new ChannelFactory<IUserService>()).SingleInstance();
builder.Register(c => c.Resolve<ChannelFactory<IUserService>>().CreateChannel())
       .UseWcfSafeRelease();
builder.RegisterType<UserService>().AsImplementedInterfaces();
4

1 に答える 1

1

コメントの中で分かったように、basicHttpBinding を使用していました。ServiceBehavior.InstanceContextMode = InstanceContextMode.PerSessionbasicHttpBinding は、 Session Behaviourをサポートしていません。バインディングの詳細については、MSDN ドキュメントを確認してください。

私が追加したいのは、WCF が自動的にセッションを追跡し、プロキシを閉じて再度開くと、同じセッションが得られることです。(もちろん、バインディングがそれをサポートしている場合)。クライアントが閉じられたときにのみ、WCF でセッションが自動的に終了します。

于 2012-10-31T20:55:03.003 に答える