2017-01-25 8 views
15

पर .exe चल रहा है मेरे पास एक फ्लास्क वेब ऐप है जो अज़ूर पर प्रकाशित है। मेरी प्रोजेक्ट में मेरे पास 'सेना-win32.exe' है जो इनपुट लेता है और कुछ आउटपुट भेजता है। इस .exe फोन करने के लिए मेरे कोड इस तरह दिखता है:अज़ूर

senna_path = 'senna-win32.exe' 
p = subprocess.Popen(senna_path,stdout=subprocess.PIPE,stdin=subprocess.PIPE, stderr=subprocess.PIPE) 
stdout = p.communicate(input=bytes(userInput, 'utf-8'))[0] 
inList = stdout.decode() 

यह अपने स्थानीय पीसी पर काम करने के लिए लगता है, लेकिन नीला पर, यह किसी भी मुद्दों को उठाने नहीं करता है लेकिन कुछ नहीं करता है।

क्या मैं एज़ेयर पर .exe फ़ाइल निष्पादित नहीं कर सकता? यह एक वेब ऐप है और क्लाउड सेवा नहीं है, मैं वास्तव में वेब/कार्यकर्ता भूमिकाओं से बचने की कोशिश कर रहा हूं क्योंकि .exe पूरी प्रोसेसिंग नहीं करता है।

+0

यह http://stackoverflow.com/questions/41785517/publishing-flask-web-app-on-azure के लिए डुप्लिकेट प्रतीत होता है। क्या आप अपना अंतर बता सकते हैं? क्या आपने 'डेटा' और 'हैश' निर्देशिका को Azure WebApp पर 'senna-win32.exe' के समान पथ में रखा था? –

+0

उस लिंक पर समस्याएं थीं कि ऐप गलत तरीके से प्रकाशित हुआ था और आईआईएस त्रुटियों का कारण बन रहा था। इस मामले में कोई त्रुटि नहीं है, यह केवल senna-win32.exe निष्पादित करते समय कुछ भी नहीं करता है जब इसे कुछ परिणाम प्राप्त करना चाहिए। मैंने डेटा और हैश निर्देशिकाओं की जांच की है और वे वास्तव में senna-win32.exe के समान पथ में हैं। मेरा विचार था कि वेब एप के तहत वेब एप के बिना वेब एप के तहत चलाने के लिए भी संभव है? – Gio

+0

[यहां एक उत्तर है] (http://stackoverflow.com/questions/28293505/process-start-in-azure-website) एक प्रश्न पर चर्चा करता है जो Azure पर .exe निष्पादन पर चर्चा करता है। ऐसा लगता है कि .exe क्या कर सकता है इसके लिए कुछ प्रतिबंध हैं लेकिन वास्तव में उन प्रतिबंधों को मुझे स्पष्ट नहीं है। माइक्रोसॉफ्ट से इसके आसपास कुछ निश्चित दस्तावेज होना बहुत अच्छा होगा। – ajbeaven

उत्तर

0

जैसा कि एजेबीवर का उल्लेख है, आप एक एज़ूर वेब ऐप में exes शुरू कर सकते हैं लेकिन कुछ प्रतिबंध हैं (स्पष्ट रूप से दस्तावेज नहीं हैं)। Process.Start in Azure Website

मैं एप्लिकेशन लॉगिंग सक्षम करता हूं और यह भी देखता हूं कि आप अपने exe से stderr को कैप्चर कर सकते हैं और डायग्नोस्टिक लॉग में लिख सकते हैं। https://docs.microsoft.com/en-us/azure/app-service/web-sites-enable-diagnostic-log

संबंधित मुद्दे