2014-04-02 4 views
2

XMLRPC (v2)를 통해 MoinMoin 위키에 연결하고 일부 데이터를 가져 오는 매우 간단한 파이썬 스크립트가 있습니다. 모든 것은 간단한 인증으로 시작됩니다.일부 기계에서는 XML-RPC ResponseError 오류가 발생했습니다.

self._server = xmlrpclib.ServerProxy(self.url) 
self.token = self._server.getAuthToken(self.user, self.password) 

동일한 스크립트가 일부 컴퓨터에서 작동하고 다른 컴퓨터에서는 작동하지 않습니다. 아래는 오류 덤프이며, 하단에는 Apache 로그가 있습니다.

이이 시스템에서 작동

:

Python 2.7.3 (default, Feb 27 2014, 19:58:35) 
[GCC 4.6.3] on linux2 

그러나이 시스템에서 실패 (통지 같은 파이썬 버전) : 또한이 시스템에서 실패

Python 2.7.3 (default, Sep 26 2013, 20:08:41) 
[GCC 4.6.3] on linux2 
[...] 
    self.token = self._server.getAuthToken(self.user, self.password) 
    File "/usr/lib/python2.7/xmlrpclib.py", line 1224, in __call__ 
    return self.__send(self.__name, args) 
    File "/usr/lib/python2.7/xmlrpclib.py", line 1578, in __request 
    verbose=self.__verbose 
    File "/usr/lib/python2.7/xmlrpclib.py", line 1264, in request 
    return self.single_request(host, handler, request_body, verbose) 
    File "/usr/lib/python2.7/xmlrpclib.py", line 1297, in single_request 
    return self.parse_response(response) 
    File "/usr/lib/python2.7/xmlrpclib.py", line 1473, in parse_response 
    return u.close() 
    File "/usr/lib/python2.7/xmlrpclib.py", line 791, in close 
    raise ResponseError() 
xmlrpclib.ResponseError: ResponseError() 

(동일한 오류, 다른 행 번호 분명) :

Python 2.6.5 (r265:79063, Sep 26 2013, 18:48:04) 
[GCC 4.4.3] on linux2 
[...] 
    self.token = self._server.getAuthToken(self.user, self.password) 
    File "/usr/lib/python2.6/xmlrpclib.py", line 1199, in __call__ 
    return self.__send(self.__name, args) 
    File "/usr/lib/python2.6/xmlrpclib.py", line 1489, in __request 
    verbose=self.__verbose 
    File "/usr/lib/python2.6/xmlrpclib.py", line 1253, in request 
    return self._parse_response(h.getfile(), sock) 
    File "/usr/lib/python2.6/xmlrpclib.py", line 1392, in _parse_response 
    return u.close() 
    File "/usr/lib/python2.6/xmlrpclib.py", line 836, in close 
    raise ResponseError() 
xmlrpclib.ResponseError: ResponseError() 

MoinMoin을 서버 세부 정보 :

Python Version 
    2.7.3 (default, Feb 27 2014, 20:09:21) [GCC 4.6.3] 
MoinMoin Version 
    Release 1.9.7 [Revision release] 

다음은 아파치 로그입니다 (나중에 캡처되므로 관련되지 않을 수 있습니다. 나는 시간과 상호 상관을 시도하지 않았다.) :

[Wed Apr 02 00:20:15 2014] [error] 2014-04-02 00:20:15,212 INFO MoinMoin.config.multiconfig:127 using wiki config: /opt/moin/share/moin/wikiconfig.pyc 
[Wed Apr 02 00:23:35 2014] [info] mod_wsgi (pid=4909): Maximum requests reached 'moin'. 
[Wed Apr 02 00:23:35 2014] [info] mod_wsgi (pid=4909): Shutdown requested 'moin'. 
[Wed Apr 02 00:23:35 2014] [info] mod_wsgi (pid=4909): Stopping process 'moin'. 
[Wed Apr 02 00:23:35 2014] [info] mod_wsgi (pid=4909): Destroying interpreters. 
[Wed Apr 02 00:23:35 2014] [info] mod_wsgi (pid=4909): Destroy interpreter 'foo.bar.baz|'. 
[Wed Apr 02 00:23:35 2014] [info] mod_wsgi (pid=4909): Cleanup interpreter ''. 
[Wed Apr 02 00:23:35 2014] [info] mod_wsgi (pid=4909): Terminating Python. 
[Wed Apr 02 00:23:35 2014] [info] mod_wsgi (pid=4909): Python has shutdown. 
[Wed Apr 02 00:23:35 2014] [info] mod_wsgi (pid=10496): Attach interpreter ''. 

실마리? 나는 정말 깜짝 놀랐다.

+0

서버에서 요청한 대상 URL이 실제로 유효한 XML-RPC 응답 페이로드로 응답하지 않았을 때 ResponseError가 발생합니다. wireshark를 사용하거나 스눕 (snoop)하여 실제 응답 내용을 확인하십시오. 아마도 정상적인 HTML 페이지 응답 일 것입니다. –

답변

0

액세스 제어 IP를 기반으로 제한이나 호스트 이름을 찾아서 문제를 해결하기 위해 서버 구성 파일에서 키워드 검색을 사용

  • 아파치 : Allow from 또는 Deny from

  • 의 nginx : allow 또는 deny

  • Lighttpd : $HTTP["host"] 또는 $HTTP["remoteip"]

참조

+0

문제가 무엇인지, 또는 어떻게 해결했는지 잊어 버린 것은 오랜 시간이 걸렸습니다. 어쨌든 대답 주셔서 감사합니다. – lorenzog