В моем проекте все данные, полученные из базы данных, сжимаются с помощью GzipCompression. Я сталкиваюсь с исключением из памяти только тогда, когда я извлекаю данные из таблицы с кодом = XYE01, которая имеет 315 записей.
Я попробовал GC.Collect() и GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce; перед сжатием данных я все еще сталкиваюсь с проблемой
[AttributeUsage(AttributeTargets.Method)]
public class GZipCompressionAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
if (actionExecutedContext.Response != null)
{
try
{
var content = actionExecutedContext.Response.Content;
var bytes = content != null ? content.ReadAsByteArrayAsync().Result : null;
var zlibbedContent = bytes != null ? GZipCompressionHelper.Compression(bytes) : new byte[0];
actionExecutedContext.Response.Content = new ByteArrayContent(zlibbedContent);
actionExecutedContext.Response.Content.Headers.Remove("Content-Type");
actionExecutedContext.Response.Content.Headers.Add("Content-Encoding", "gzip");
actionExecutedContext.Response.Content.Headers.Add("Content-Type", "application/json");
}
catch (Exception ex)
{
Logger.Log(LogLevel.Error, string.Format("Cannot compress on query: {0}.", actionExecutedContext.Request.RequestUri.PathAndQuery), ex);
}
}
base.OnActionExecuted(actionExecutedContext);
}
}
#region publicMethods
// GET api/RequiredStartingValue/GetRequiredStartingValues?code=
[GZipCompression]
[HttpGet, CacheOutput(NoCache = true)]
[UnitOfWorkAction(ReadUncommitted = true)]
public IHttpActionResult GetRequiredStartingValues(string code)
{
List<StartingValue> requiredStartingValues = _startingValuesRepository.GetRequiredStartingValues(customerCode);
return Ok(requiredStartingValues );
}
#endregion
Как увеличить память? Другие таблицы, в которых поступает 900 строк, также работают нормально, но с 315 строками возникает исключение из памяти, которое я не могу понять.
Пожалуйста, дайте мне несколько предложений, так как я новичок в WebAPI и выборке базы данных, я не могу понять основную причину.
Спасибо, Нагасри.