WCF постоянные перемены?
Я хочу иметь возможность сохранять переменные между вызовами к моей службе WCF по разным причинам. У меня есть следующее, что работает, но я прочитал, что использование "Single" - действительно плохая идея. Это действительно прототип и ничего критичного, но у него есть несколько пользователей, и я боюсь, что один будет означать, что он устанавливает одинаковые переменные для всех пользовательских сессий. Кто-то может подтвердить / опровергнуть это? Это не работает вообще, когда я устанавливаю его в 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 позволяет мне выбирать только PerCall, PerSession и Single для InstanceContextMode.
1 ответ
Ознакомьтесь с документацией WCF об обработке сеансов ( MSDN). Если вы работаете с прототипом, вы можете создать статический словарь, в который вы можете записать свои значения в сочетании с ключом сеанса.