HttpResult上的ToOptimizedResult导致StackOverflow异常

时间:2014-03-21 23:42:27

标签: servicestack servicestack-text servicestack-bsd

我正在使用v3.9.56.0,当我在返回的ToOptimizedResult上调用HttpResult(从我自己的服务运行时调用)时,我遇到了堆栈溢出异常一项服务。当我深入挖掘时,我发现异常来自JsonSerializer

以下是返回内容的代码片段:

return new HttpResult(new FileInfo(Path.Combine(path, file)), true)

1 个答案:

答案 0 :(得分:3)

这种情况正在发生,因为ToOptimizedResult期望收到一个DTO响应对象,它可以压缩以创建CompressedResult响应。

但是,您提供的HttpResult实际上是您正在加载的文件的byte[] / string DTO响应对象的包装器,此包装器是一种复杂类型,并且不是'真的是你想要优化的东西。

如果您的文件是二进制文件,则应返回内容的byte[],如果是纯文本,则返回string。然后ToOptimizedResult可以优化该数据。

// Binary file type
return File.ReadAllBytes(Path.Combine(path, file));  // returns byte[]

// Plain text file type
return File.ReadAllText(Path.Combine(path, file));  // returns string