Постоянные переменные 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

Я читал что-то о службе «Durable», но VS2010 позволяет мне выбирать только PerCall, PerSession и Single для InstanceContextMode.


person JOATMON    schedule 18.06.2012    source источник


Ответы (1)


Ознакомьтесь с документацией WCF об обработке сеансов (MSDN). работая над прототипом, вы можете построить статический словарь, в котором вы можете сбрасывать свои значения в сочетании с сеансовым ключом

person Dominik    schedule 18.06.2012