0

我有一个 web 应用程序,它通过其中一个 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

我什至从哪里开始解决此错误?

4

2 回答 2

1

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

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

于 2012-10-25T09:25:21.513 回答
0

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

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

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

if !row.empty?

我停止收到错误。

于 2012-10-26T19:09:42.223 回答