Bonjour,
J'utilise un Webservice avec une application WPF et Silverlight. Je souhaite utiliser l'objet Session dans mon WebService pour utiliser une notion de persistance. L'initialisation de ma Session fonctionne bien (Webmethod SetupGetData), mais lorsque je fais appel à nouveau à l'objet par une autre méthode (Webmethod GetData), l'objet Session est null
Dans le fichier de config du service web j'ai mis la ligne suivante pour activer les cookies mais le comportement est le même sans cette ligne
<sessionState cookieless="UseCookies" mode="InProc"></sessionState>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| [WebMethod(EnableSession=true)]
[XmlInclude(typeof(CSetupData)), XmlInclude(typeof(CReturnSetupData))]
public List<CReturnSetupData> SetupGetData(List<CSetupData> setupDataList)
{
List<CReturnSetupData> returnSetupDataList = new List<CReturnSetupData>();
// Création des sessions
foreach(CSetupData setupData in setupDataList)
{
if (Session[setupData.Id.ToString()] == null)
{
Session[setupData.Id.ToString()] = setupData;
CReturnSetupData returnSetupData = new CReturnSetupData(setupData.Id);
returnSetupDataList.Add(returnSetupData);
}
}
return returnSetupDataList;
}
[WebMethod(EnableSession = true)]
[XmlInclude(typeof(CData)), XmlInclude(typeof(CReturnData))]
public List<CReturnData> GetData(List<CData> dataList)
{
List<CReturnData> returnDataList = new List<CReturnData>();
Random rand = new Random();
foreach (CData data in dataList)
{
if (Session[data.Id.ToString()] != null)
{
for (DateTime date = data.T0; date <= DateTime.Now; date = date.AddMilliseconds(data.DeltaTResol / 5))
{
CReturnData returnData = new CReturnData(data.Id, date, rand.Next(0, 80));
returnDataList.Add(returnData);
}
}
else
{
}
}
return returnDataList;
} |
Partager