Есть служба:
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"/>