2009-10-19 6 views
0

Возможно ли получить дату/время запроса в ASP.NET (желательно VB.NET)?Получить дату/время запроса http

Я пробовал HttpContext.Current.Request.Headers.Get("date"), но он ничего не возвращает (null).

+0

Текущий запрос, вероятно, был выпущен на DateDate.Now? Или я пропустил? – Espo

ответ

1

Ну, DateTime.Now будет выполнять эту работу в большинстве случаев. Если вы хотите узнать дату и время на клиентской машине, вы можете приблизиться к этому, добавив/вычитая смещение часового пояса клиентов.

+0

Возможно ли получить уникальный идентификатор для HTTP-запроса? Возможно, я мог бы сделать эту работу. – craig

+0

@craig: Что вы пытаетесь сделать? 'Guid.NewGuid()' довольно уникален. –

2

В соответствии с w3c в HTTP-запросе нет заголовка «Дата» (но есть один в ответе HTTP), поэтому вы можете определить, когда ASP.NET получил восстановленный патикулярный запрос, но не когда он был отправлен. Если вам нужно время получения HTTP-запроса, вы можете использовать DateTime.Now, но как это сделать наилучшим образом, я могу ответить, только если вы расскажете о своей задаче с более подробной информацией.

+0

Я создаю sql logger, в основном запрос приходит, и любые sql-запросы сохраняются в таблице в db. Тем не менее, мне нужно как-то сгруппировать sql-запросы на запрос (как их может быть много). Я думал, что могу получить дату/время запроса и сравнить это каждый раз, чтобы узнать, был ли это новый запрос или нет. Или, если я могу получить request.id? это было бы велико. – craig

+0

Вы можете использовать метод Guid.NewGuid() для каждого запроса (как описано выше). Просто добавьте поле типа «uniqueidentifier» в таблицу базы данных и сохраните это сгенерированное для идентификатора запроса. – Restuta

0

Ну, HttpContext.Current.Timestamp утверждает, что делает именно это. Но я не на 100%, когда он хватает эту метку времени.

Смежные вопросы