mg.ri...@gmail.com
unread,Jan 25, 2016, 7:32:16 AM1/25/16You do not have permission to delete messages in this group
Sign in to report message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
Salve a tutti,
è da un pò che non posto quì ... è la prima volta che mi capita questo problema ...
La faccio semplice per individuare il problema:
ho un webservices asmx a cui viene chiesto di fare l'avanzamento di un numero, nello specifico più di uno, ma il problema è lo stesso.
Se non viene richiesto nulla "per un pò" ... dico un pò perchè il tempo di azzeramento NON è sempre lo stesso ... il contatore riparte da zero.
La memorizzazione del contatore che deve essere la stessa per tutti è fatta attraverso un Singleton (thread safe) e le operazioni sono di avanzamento.
Cosa ho già fatto e che NON ha risolto:
- aumento del timeout su IIS impostato al massimo supportabile 65535
- aumento del timeout sul pool di applicazioni a 900minuti
- dicitura esplicita sui metodi del webservice [WebMethod(EnableSession=true)]
- impostato da web.config <sessionState timeout="900" />
Singleton
// Implementazione Singleton
class testService
{
private readonly static Object syncRoot = new Object();
private Int32 _Number;
public Int32 _Number
{ get { return _Number; } set { _Number = value; } }
public static testServiceMyService()
{
if (HttpContext.Current.Cache["testService"] == null)
{
lock (syncRoot) // thread safe
{
if (HttpContext.Current.Cache["testService"] == null)
{
// Expiration Cache 24h
HttpContext.Current.Cache.Add("testService", new testService(), null, Cache.NoAbsoluteExpiration, new TimeSpan(24, 0, 0), CacheItemPriority.Default, null);
}
}
}
return (testService)HttpContext.Current.Cache["testService"];
}
Avrei la necessità di spostare al massimo possibile il periodo di inattività in modo da non azzerare il contatore ... potrebbe essere il Garbage Collector?
Grazie anticipatamente
--
Riddler ?