Sinatra-Synchrony导致HttpProtocolException:HTTP-headers - 对于某些用户来说是预期的错误

时间:2012-10-24 15:47:38

标签: ruby sinatra helicontech

我有一个网络应用程序,通过其中一个API更新Pardot中的数据。

webapp用Sinatra编码。用户将api url和csv文件添加到需要在表单中更新的数据并点击提交。代码解析csv数据并将其发送到提供的URL。后端服务器是带有IIS 7.5和HeliconZoo的Windows Server 2008 R2。

由于性能问题,Helicon技术支持向我指出了Sinatra::Synchrony,我决定实施它。

我在具有不同操作系统和浏览器的多台不同计算机上进行了测试,一切正常。当连接多台计算机并提交表格时,性能明显加快。

我遇到的问题是,有些用户在每次提交表单后都会收到此错误:

Error
Helicon Zoo module has caught up an error. Please see the details below.
Worker Status
  %WorkerStatus%
Windows error
  %WindowsError% 
Internal module error
 message: HTTP-headers - are expected
 job: JobHttp[#3] - /
 transportStatus:Online
 getErrorMessage:
 RAW output bytes:0
 RAW output Begin
 Empty stderr
 End

type: ZooException
file: JobHttp.cpp 
line: 266
version: 1.1.57.268

即使他们收到此错误,数据也会成功发送给Pardot。

以下是ZooError.log文件中的一个条目:

[10/24/2012 10:44:01]   HttpProtocolException: HTTP-headers - are expected

job: JobHttp[#212]  - / 

transportStatus:Online 

getErrorMessage: 

RAW output bytes:0

RAW output Begin

Empty stderr

End

我甚至在哪里开始解决此错误?

2 个答案:

答案 0 :(得分:1)

尼尔。我来自Helicon Tech并将尽力帮助您。 请检查您的Sinatra应用程序的日志,因为根据我们的日志,Sinatra以空响应回复,这是不好的。

它可能是Zoo中的一些问题,因此如果您可以提供一些测试应用程序和如何将此类行为重现到helpdesk的说明,我们会尝试检测并修复它。

答案 1 :(得分:0)

我要感谢Tony提供帮助,但这个错误与Helicon Zoo没有任何关系。从动物园屏幕上显示的错误没有任何帮助,但这最终成为我自己的代码的问题。

我正在向来自csv文件的Pardot发送数据。通过从一个Excel工作表复制到另一个Excel工作表从excel创建.csv文件的用户。通过这样做excel是复制一堆空行,然后将这些空行保存到csv文件中。

所以......一旦我检查了csv文件中的空行:

if !row.empty?

我没有收到错误。