Я хочу извлечь из iis, когда определенный сеанс пользователя, указанный здесь aspnetsessionid, истекает до 10-минутного тайм-аута сеанса, который я установил для этого приложения.
Я пытаюсь проанализировать журналы iis, и я не уверен, как взять каждый sessionid и подсчитать, сколько минут он длился.
После того, как я решу эту первую часть, я буду искать, какой из сеансов завершился вызовом страницы timeout.aspx, хотя было бы неплохо указать это в одном запросе.
Я пытаюсь работать над этим запросом
SELECT
TO_STRING(time, 'm') as mins,
EXTRACT_TOKEN(EXTRACT_TOKEN(cs(Cookie), 1, 'ASP.NET_SessionId='), 0, ';+__ut') as ASPNETSESSIONID From C:\logs\ex11*.log
GROUP BY ASPNETSESSIONID, mins
Вот пример моего экземпляра файла журнала, который я пытаюсь поймать
Line Number Date Time Client-IP Server IP Server Port Request Verb Request URI, ASPNETSessionID
255 4/1/2011 19:40:55 222.222.22.22 111.11.111.11 443 GET /webpage.aspx 1234567890
256 4/1/2011 19:40:55 222.222.22.22 111.11.111.11 443 GET /jscript/SessionTimeout/SessionTimeout.js 1234567890
257 4/1/2011 19:40:58 222.222.22.22 111.11.111.11 443 POST /VerifySession.aspx 1234567890
260 4/1/2011 19:41:04 222.222.22.22 111.11.111.11 443 POST /Formle.aspx 1234567890
261 4/1/2011 19:41:04 222.222.22.22 111.11.111.11 443 GET /jscript/SessionTimeout/SessionTimeout.js 1234567890
263 4/1/2011 19:41:05 222.222.22.22 111.11.111.11 443 POST /VerifySession.aspx 1234567890
265 4/1/2011 19:41:10 222.222.22.22 111.11.111.11 443 POST /FormItemsTable.aspx 1234567890
266 4/1/2011 19:41:10 222.222.22.22 111.11.111.11 443 GET /FormRecord.aspx 1234567890
267 4/1/2011 19:41:10 222.222.22.22 111.11.111.11 443 GET /jscript/SessionTimeout/SessionTimeout.js 1234567890
268 4/1/2011 19:41:12 222.222.22.22 111.11.111.11 443 POST /VerifySession.aspx 1234567890
273 4/1/2011 19:41:23 222.222.22.22 111.11.111.11 443 POST /FormRd.aspx 1234567890
274 4/1/2011 19:41:23 222.222.22.22 111.11.111.11 443 GET /jscript/SessionTimeout/SessionTimeout.js 1234567890
275 4/1/2011 19:41:25 222.222.22.22 111.11.111.11 443 POST /VerifySession.aspx 1234567890
276 4/1/2011 19:41:25 222.222.22.22 111.11.111.11 443 GET /Timeout.aspx 1234567890
импортировать данные в db, затем запросить
SELECT * from ((SELECT MAX(LocalDateTime) FROM dpo.importtable AS [initial] WHERE sessionid = raw_data.sessionid) - (SELECT MIN(LocalDateTime) FROM dpo.importtable AS [initial] WHERE sessionid = raw_data.sessionid) as diff) as g where diff < CAST('1900-01-01 00:10:00.000' AS datetime)