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). Если вы работаете с прототипом, вы можете создать статический словарь, в который вы можете записать свои значения в сочетании с ключом сеанса.

Другие вопросы по тегам