Может ли средство визуализации NLog {as pnet -session: variable = IntID} извлекать / отображать целые числа из HttpContext.Session [IntID]? - PullRequest
0 голосов
/ 28 мая 2020

Прежде чем публиковать подробные детали кода, просто спросите, возможно ли это. В настоящее время я могу отображать строки, извлеченные из сеанса, но не INT (без значения, даже если они имеют значение в сеансе). Если нет, значит, проблема решена. Если возможно, я не могу определить, что не так, и вернусь к деталям публикации.

NUTSHELL EXPLANATION - в контроллере:

HttpContext.Session.SetInt32("SID", (int)userCreds.ProfileSessionId); //custom session id set as INT
HttpContext.Session.SetString("TID", userCreds.TimezoneId);           //timezone id set as STRING

NLOG TARGET:

<target xsi:type="File" name="allfile" fileName="T:\test.log"
 layout="[sid: ${aspnet-session:variable=SID}] [tid: ${aspnet-session:variable=TID}]" />

NLOG OUTPUT:

[sid:    ] [tid: 3]

Таким образом, строковое значение отображает, но значение INT никогда ничего не отображает.

В справочных документах NLog ничего не говорится об извлечении INT из сеанса, и их пример показывает только извлечение STRING из сеанса. Итак, можете ли вы отобразить INT из сеанса, используя {as pnet -session}?

1 Ответ

0 голосов
/ 28 мая 2020

Я могу подтвердить, что это ошибка / ограничение в текущей реализации ${aspnet-session} для ASP. NET Core. (Сбой модульного теста можно увидеть здесь )

К сожалению, тип неизвестен, потому что в ASP. NET Core сеансе сохраняются только байты.

В настоящее время поддерживаются только строки.

PS: Для ASP. NET (неосновной). Целые числа работают.

...