Почему теряется сессия в веб-сервисе?
От: objMihail Россия  
Дата: 28.04.11 14:40
Оценка:
Есть служба:
public class WebService : System.Web.Services.WebService
{
    [WebMethod(EnableSession = true)]
    public void Method1()
    {
        Session.Add("value", "Test");
    }
    
    [WebMethod(EnableSession = true)]
    public void Method2()
    {
        if (Session.Count == 0) throw new Exception();
    }
}


Я её вызываю из net-приложения — через автоматически созданную студией обёртку, наследующую System.ServiceModel.ClientBase.
В начале вызываю один метод, а потом второй. И второй бросает исключение — сессия не запоминается.

Причём если пользоваться службой через браузер — то всё нормально, сессия запоминается.

Пробовал шаманить с CookieContainer, но у System.ServiceModel.ClientBase нет такого свойства, присваивать его некуда, а чего ещё можно придумать — без понятия, подскажите, куда копать. Судя по всему проблема в том, что служба думает, что к ней каждый раз новый клиент подсоединяется, а как ей дать понять, что он не новый?

В конфиге службы прописал следующее, но это не помогло:

<sessionState mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="20"/>

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.