XHTML2PDF Django [Errno 10061]无法建立连接,因为目标计算机主动拒绝它

时间:2014-03-04 16:04:44

标签: python django

我已经使用XAMPP& amp;部署了我的django应用程序mod_wsgi的。在部署我的应用程序之前一切都很好。但是在我部署之后,pdf dowloand函数将无效并返回错误。

这是我的代码的快照

def render_to_pdf(template_src, context_dict, file_name):
    template = get_template(template_src)
    context = Context(context_dict)
    html  = template.render(context)
    result = StringIO.StringIO()
    pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("ISO-8859-1")), result)
    if not pdf.err:
        response = http.HttpResponse(content_type='application/pdf')
        response['Content-Disposition'] = 'attachment; filename="%s"' %(file_name,)
        response.write(result.getvalue())
        return response
    return http.HttpResponse('We had some errors<pre>%s</pre>' % cgi.escape(html))

这是错误

[Errno 10061] No connection could be made because the target machine actively refused it

以下是导致错误的代码行

pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("ISO-8859-1")), result)

异常位置:

C:\Python27x32\Lib\socket.py in create_connection, line 571

这是我的wsgi.py

的代码
<VirtualHost *:80>
    WSGIScriptAlias / "c:/xampp/htdocs/ghb/ghb/wsgi.py"

    <Directory "c:/xampp/htdocs/ghb/">
        <Files wsgi.py>
            Order deny,allow
            Allow from all
        </Files>
    </Directory>

    Alias /static/ C:/xampp/htdocs/ghb/static/

    <Directory c:/xampp/htdocs/ghb/static/>
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>

这是Error Log

1 个答案:

答案 0 :(得分:2)

相关的回溯可以从你的error.log开始,从第400行开始。从这个回溯中,在我看来你的HTML包含一个URL(可能是一个图像的链接?),它不起作用(也许它指向localhost并且可以在您的桌面上运行,但不能在服务器上运行?); xhtml2pdf尝试获取该URL(可能包含PDF中的图像?)并失败。检查html变量(传递给xhtml2pdf的HTML代码)的内容是否有损坏的http:https:链接。通过跟踪回溯中的文件名+行引用(如File "C:\\Python27x32\\lib\\site-packages\\xhtml2pdf\\parser.py", line 448),您可以更准确地确定xhtml2pdf阻塞的元素。