Ошибка нулевого буфера
Я только что заметил, что при запуске приложения я периодически получаю сообщение об ошибке.
Server Error in '/' Application.
Buffer cannot be null.
Parameter name: buffer
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ArgumentNullException: Buffer cannot be null.
Parameter name: buffer
Трассировки стека:
[ArgumentNullException: Buffer cannot be null.
Parameter name: buffer]
System.IO.MemoryStream..ctor(Byte[] buffer, Boolean writable) +12627669
MemcachedProviders.Session.Common.Deserialize(HttpContext context, Byte[] serializedItems, Int32 timeout) +47
MemcachedProviders.Session.Db.SQLDbOperations.GetItem(String strSessionId, String strApplicationName, Int32 iTime, HttpContext context, Boolean lockRecord, Boolean& locked, TimeSpan& lockAge, Object& lockId, SessionStateActions& actionFlags) +1221
MemcachedProviders.Session.SessionStateProvider.GetItemExclusive(HttpContext context, String id, Boolean& locked, TimeSpan& lockAge, Object& lockId, SessionStateActions& actions) +1069
System.Web.SessionState.SessionStateModule.GetSessionStateItem() +178
System.Web.SessionState.SessionStateModule.PollLockedSessionCallback(Object state) +299
[HttpException (0x80004005): Exception of type 'System.Web.HttpException' was thrown.]
System.Web.SessionState.SessionStateModule.EndAcquireState(IAsyncResult ar) +11513726
System.Web.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult ar) +107
Наше приложение использует Enyim memcached и MemcachedProviders и работает в среде с балансировкой нагрузки.
Приложение выполняет много функций по управлению отчетами в формате PDF и составлению ответов, а затем создает итоговый отчет в формате PDF. Поэтому мы используем потоки совсем немного.
Эта проблема, по-видимому, влияет только на наше приложение управления, поскольку мы также предоставляем веб-сервис, и я никогда не получаю сообщение об ошибке при просмотре определения сервиса и WSDL.
Просматривая таблицу сеансов в БД, я вижу, что они создаются, но многие из них имеют значение NULL в поле SessionItems и флаг блокировки установлен на 1. Кажется, что временные метки данных соответствуют ошибкам появления нулевого буфера.
Это случай, когда буфер установлен неправильно или максимально?