Python 使用mod_wsgi切断服务文件的连接

Python 使用mod_wsgi切断服务文件的连接,python,apache,mod-wsgi,Python,Apache,Mod Wsgi,我正在linux上运行Apache2.2服务器。使用mod_wsgi为http提供python代码 当试图提供一个大文件时,它会在95%左右停止,而不会在服务器上引发异常 curl显示此错误: curl:(18)传输结束,剩余160800字节用于读取 守则: 如果环境中有“wsgi.file\u wrapper”: 在windows中运行相同的代码时,所有代码都正常工作 有什么问题吗?要让curl给出这样的消息,必须为响应提供一个内容长度,您是如何设置的?您是否在Windows上使用文件大小,如

我正在linux上运行Apache2.2服务器。使用mod_wsgi为http提供python代码

当试图提供一个大文件时,它会在95%左右停止,而不会在服务器上引发异常

curl显示此错误:

curl:(18)传输结束,剩余160800字节用于读取

守则:

如果环境中有“wsgi.file\u wrapper”:

在windows中运行相同的代码时,所有代码都正常工作


有什么问题吗?

要让curl给出这样的消息,必须为响应提供一个内容长度,您是如何设置的?您是否在Windows上使用文件大小,如果使用CRLF并以文本模式打开文件,则会出现错误,这会导致在发送回的数据中抑制CR。确保以原始模式打开文件。内容长度由
size=os.path.getsize(self.path)
设置。并使用“rb”标志打开文件
    self.body = environ['wsgi.file_wrapper'](self.file, block_size)
else:
    self.body = iter(lambda: self.file.read(block_size), '')