我有一个网络应用程序,通过其中一个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
我甚至在哪里开始解决此错误?
答案 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?
我没有收到错误。