Windows HTTP API का उपयोग करके मैं लोकलहोस्ट पर एक HTTP फ़ाइल सर्वर चला रहा हूँ।

इसमें HttpAddUrl(hRequestQueue, L"http://localhost:80/", NULL) को कॉल करना शामिल है।

यह ERROR_ACCESS_DENIED के साथ तब तक विफल रहता है जब तक कि उपयोगकर्ता एप्लिकेशन को व्यवस्थापक के रूप में नहीं चलाता। मुझे उन उपयोगकर्ताओं के लिए इस कार्यक्षमता की आवश्यकता है जिनके पास व्यवस्थापकीय विशेषाधिकार नहीं हैं। (वैसे भी लोकलहोस्ट सर्वर चलाने वाले उपयोगकर्ता के साथ क्या गलत है? यह केवल उपयोगकर्ता के लिए ही है।)

मुझे एक Vista और XP के लिए हॉटफिक्स मिला जिसका उद्देश्य इसे हल करना है, लेकिन विंडोज 7 के लिए कुछ भी नहीं है लेख का तात्पर्य है कि यह विस्टा एसपी1 में तय किया गया था, और मेरे पास विंडोज 7 एसपी1 है और यह अभी भी एक समस्या है - क्या इसे विंडोज 7 में ठीक नहीं किया गया था?

क्या गैर-व्यवस्थापकों के लिए सर्वर चलाने के लिए मैं कुछ और कर सकता हूं?

2
AshleysBrain 17 जुलाई 2011, 04:26

2 जवाब

सबसे बढ़िया उत्तर

मेरे अपने प्रश्न का उत्तर दे रहा था, लेकिन एक समाधान मिला: IANA पोर्ट नंबर स्टेट पोर्ट्स 49152-65535 गतिशील/निजी उद्देश्यों के लिए हैं। HttpAddUrl पोर्ट पर लोकलहोस्ट के लिए>= 49152 गैर-व्यवस्थापकों के लिए ठीक काम करता है।

8
AshleysBrain 17 जुलाई 2011, 17:40
लेकिन http://127.0.0.1:50000 या http://192.168.x.y:50000 (स्थानीय नेटवर्क पता) को अभी भी व्यवस्थापक अधिकारों की आवश्यकता है :(
 – 
Aikon Mogwai
19 जुलाई 2021, 19:53

इसे सिस्टम स्तर पर कॉन्फ़िगर किया जाना चाहिए क्योंकि HTTP API http.sys (कर्नेल ड्राइवर) का उपयोग करता है। उपयोगकर्ता या एप्लिकेशन तक पहुंच प्रदान करने के लिए आप प्रशासक विशेषाधिकारों के साथ निष्पादित netsh.exe कमांड का उपयोग कर सकते हैं:

netsh http add urlacl url=http://localhost:80/ user=EVERYONE listen=yes delegate=no
5
Ladislav Mrnka 27 सितंबर 2011, 13:55