2013-10-11 7 views
7

लोड करने के लिए azure वेबसाइट समर्थन p/invoke करता है मुझे this पता चला है कि Azure वेब/कार्यकर्ता भूमिका मूल C++ dll लोड कर सकती है। azure वेबसाइट भी इसका समर्थन करता है?देशी C++ dll

मेरी साइट एक एमवीसी साइट है जो देशी सी ++ डीएल को पी/आमंत्रित करती है जो स्थानीय ड्राइव से फ़ाइलें पढ़ती है और कुछ गणना करता है। कारण मैं Azure वेबसाइट पसंद करेंगे क्योंकि यह मुफ्त से शुरू होता है।

धन्यवाद।

उत्तर

7

Azure वेबसाइटें देशी डीएलएस भी लोड कर सकती हैं। मैंने अभी इसे काम किया है।

  1. अपने समाधान संकलित करें:

    ये कदम उठाएँ (here से कहा गया है) कर रहे हैं।

  2. प्रबंधित प्रोजेक्ट पर राइट क्लिक करें और "जोड़ें/मौजूदा आइटम" का चयन करें। "संदर्भ जोड़ें" का प्रयोग न करें।

  3. अपने संकलित देशी डीएलएल पर नेविगेट करें और इसे चुनें (फ़ाइल प्रकारों को आवश्यकतानुसार समायोजित करें)।

  4. "जोड़ें" विभाजित बटन में नीचे तीर पर क्लिक करें और "लिंक के रूप में जोड़ें" का चयन करें।

  5. उस ताजा जोड़े गए फ़ाइल पर राइट क्लिक करें और "Properties" चुनें।

  6. सुनिश्चित करें कि "बिल्ड एक्शन" "सामग्री" और "आउटपुट निर्देशिका में कॉपी करें" को "हमेशा कॉपी करें" या "नया अगर कॉपी करें" पर सेट किया गया है।

नोट: चरण 2 में, आप सही इस परियोजना पर, क्लिक करना चाहिए ताकि dll बिन फ़ोल्डर में कॉपी किया जायेगा, और Azure सर्वर पर अपलोड। यदि आप इसे सीधे परियोजना के तहत किसी फ़ोल्डर में डालते हैं, तो डीएलएल को/bin/somefolder पर कॉपी किया जाएगा, जो अभी भी अदृश्य है।

उम्मीद है कि इससे मदद मिलती है।

+0

यह महत्वपूर्ण होगा यदि डीएल पहले से ही बिन फ़ोल्डर में समाप्त नहीं हो रहा था। यदि यह पहले से ही था (यानी एक न्यूजेट तैनाती इत्यादि के माध्यम से), तो आपको यह भी देखने की आवश्यकता हो सकती है: http://stackoverflow.com/questions/28275944/how-to-include-libsodium-net-on-asp-net – guysherman

3

आप एक मूल डीएलएल लोड कर सकते हैं, लेकिन कुछ आवश्यकताएं हैं। सबसे पहले, यह x64 को लक्षित करना चाहिए, x86 नहीं।

इसके अलावा, आप यह उचित टूलसेट के खिलाफ निर्माण करना होगा:

डिफ़ॉल्ट रूप से, केवल विजुअल C++ विजुअल C++ के लिए 2008 क्रम पुस्तकालयों विंडोज Azure कार्यकर्ता और वेब भूमिकाओं पर स्थापित कर रहे हैं। इसलिए, Visual C++ 2010 या Visual C++ 2005 के लिए Visual C++ रनटाइम लाइब्रेरी के विरुद्ध संकलित मूल कोड कार्यकर्ता और वेब भूमिका के उदाहरणों में लोड करने में विफल रहेगा। यदि आपके पास एक ही कंप्यूटर पर विजुअल स्टूडियो 2008 और विजुअल स्टूडियो 2010 दोनों स्थापित हैं, तो आप विजुअल स्टूडियो 2008 प्लेटफार्म टूलसेट (कंपाइलर, लिंकर, हेडर) के साथ अपने एप्लिकेशन के लिए मूल पुस्तकालय बनाने के लिए विजुअल स्टूडियो 2010 की मूल बहु-लक्ष्यीकरण सुविधा का उपयोग कर सकते हैं। और पुस्तकालय)। विजुअल स्टूडियो 2008 प्लेटफ़ॉर्म टूलसेट के साथ एप्लिकेशन बनाने के लिए विजुअल स्टूडियो 2010 का उपयोग करने के बारे में अधिक जानकारी के लिए सी ++ मूल मल्टी-टार्गेटिंग (http://go.microsoft.com/fwlink/p/?LinkId=231170) देखें।

वैकल्पिक रूप से, आप एक स्टार्टअप कार्य सेट कर सकते हैं जो उच्चतर चलाता है जो सर्वर पर आपके मूल DLL के लिए आवश्यकताओं की प्रतिलिपि बनाता है।

पूर्ण विवरण के लिए, Best Practices for Running Unmanaged Code in Windows Azure Applications देखें।

+2

धन्यवाद, क्या ये सभी एज़ूर वेबसाइट पर भी लागू होते हैं? मुझे लगता है कि आपका उत्तर वेब भूमिका (क्लाउड सेवा) – Xin

+0

@Xin मुझे संदर्भित करता है: http://stackoverflow.com/questions/28275944/how-to-include-libsodium-net-on-asp-net सबसे अधिक था Azure वेबसाइट्स के लिए मूल्यवान – guysherman

+0

यह भी ध्यान दें कि यह * x64 नहीं है, इसे आपके Azure वेबसाइट/AppService क्या चल रहा है (उन्हें 32 बिट पर सेट किया जा सकता है) से मेल खाना पड़ेगा। – guysherman

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