python डब्लूएसजीआई में स्पेसप्लीब कैनोट सेंंड रेक्वेस्ट त्रुटि




twitter oauth (2)

ट्विटर के साथ प्रमाणित करने के लिए मैंने दो अलग अजगर ओएथ पुस्तकालयों को डीजेंगो के साथ प्रयोग किया है। सेटअप WSGI के साथ अपाचे पर है जब मैं सर्वर को पुनरारंभ करता हूँ तो लगभग 10 मिनट के लिए सब कुछ बहुत अच्छा काम करता है और फिर बुकक्लिपि को लॉक लगता है (निम्न त्रुटि देखें)।

मैं केवल 1 प्रक्रिया और WSGI का 1 धागा चला रहा हूं लेकिन ऐसा लगता है कि कोई फर्क नहीं पड़ता।

मुझे समझ नहीं आ रहा है कि यह लॉकिंग क्यों कर रहा है और यह CannotSendRequest त्रुटि दे रहा है मैंने इस निराशाजनक समस्या पर बहुत घंटे बिताए हैं जो भी हो सकता है उसके सुझाव / सुझाव बहुत सराहना करेंगे

File "/usr/lib/python2.5/site-packages/django/core/handlers/base.py", line 92, in get_response
  response = callback(request, *callback_args, **callback_kwargs)

File "mypath/auth/decorators.py", line 9, in decorated
  return f(*args, **kwargs)

File "mypath/auth/views.py", line 30, in login
  token = get_unauthorized_token()

File "/root/storm/eye/auth/utils.py", line 49, in get_unauthorized_token
  return oauth.OAuthToken.from_string(oauth_response(req))

File "mypath/auth/utils.py", line 41, in oauth_response
  connection().request(req.http_method, req.to_url())

File "/usr/lib/python2.5/httplib.py", line 866, in request
  self._send_request(method, url, body, headers)

File "/usr/lib/python2.5/httplib.py", line 883, in _send_request
  self.putrequest(method, url, **skips)

File "/usr/lib/python2.5/httplib.py", line 770, in putrequest
  raise CannotSendRequest()

CannotSendRequest


यह अपवाद तब उठाया जाता है जब आप httplib.HTTP पुनः उपयोग करते हैं। httplib.HTTP ऑब्जेक्ट के लिए नए अनुरोध के लिए, जब आपने पिछली अनुरोध के लिए इसकी getresponse() विधि नहीं कहा था। संभव है कि इससे पहले कोई अन्य त्रुटि हुई थी जो टूटी हुई स्थिति में बाएं कनेक्शन था। समस्या को ठीक करने का सबसे आसान विश्वसनीय तरीका प्रत्येक अनुरोध के लिए नया कनेक्शन तैयार कर रहा है, इसका पुन: उपयोग नहीं किया जा रहा है। ज़रूर, यह थोड़ा धीमा होगा, लेकिन मुझे लगता है कि यह एक ऐसा मुद्दा नहीं है कि आप एकल प्रक्रिया में आवेदन कर रहे हैं और एकल धागा।


अपने पायथन संस्करण को भी जांचें। Py-2.7 से Py-2.6 को अद्यतन करने के बाद मेरे पास ऐसी ही स्थिति थी। Py-2.6 में किसी भी समस्या के बिना काम किया। Py-2.7 छुपाप्लिप डिफ़ॉल्ट रूप से HTTP / 1.1 का उपयोग करता है जिससे सर्वर ने कनेक्शन वापस नहीं भेजा : उत्तर में बंद विकल्प, इसलिए कनेक्शन हैंडलिंग टूट गया था। मेरे मामले में यह HTTP / 1.0 के साथ हालांकि काम किया।