さまざまな理由で、WCFサービスへの呼び出し間で変数を保存できるようにしたいと考えています。私は次のように機能しますが、「シングル」を使用するのは本当に悪い考えだと読みました。これは実際にはプロトタイプであり、重要なことではありませんが、複数のユーザーがいるため、単一の場合は、すべてのユーザーセッションで同じ変数が設定されることを意味します。誰かがこれを確認/拒否できますか? PerSessionに設定すると、まったく機能しません。これは、論理的には私が望むと思うものです。
<ServiceContract(Namespace:="")> _
<AspNetCompatibilityRequirements(RequirementsMode:=AspNetCompatibilityRequirementsMode.Allowed)> _
<ServiceBehavior(InstanceContextMode:=ServiceModel.InstanceContextMode.Single, ConcurrencyMode:=ServiceModel.ConcurrencyMode.Single)> _
Public Class MyServices
Public testint As Integer = 0
<WebGet()>
<OperationContract()> _
Public Function test1() As Boolean
testint = 42
return true
End Function
<WebGet()>
<OperationContract()> _
Public Function test2() As Integer
return testint
End Function
End Class
「耐久性のある」サービスについて何か読んだのですが、VS2010では、InstanceContextModeに対してPerCall、PerSession、およびSingleしか選択できません。