नहीं मिला है हम एक वेब एप्लिकेशन (सी # .NET) बना रहे हैं जो इमगु ओपनसीवी रैपर के रूप में अप्रबंधित पुस्तकालयों का उपयोग करता है। हम 32-बिट (x86) में निर्माण को मजबूर कर रहे हैं, और हम इमू के 32-बिट संस्करण का उपयोग कर रहे हैं।ओपनसीवी अप्रबंधित DLLs asp.net
यह सब अच्छा काम करता है स्थानीय बनाता है पर, लेकिन जब हमारे वेब सर्वर पर प्रकाशित किया जा रहा openCV Dll (रों) लोड करने में विफल:
System.DllNotFoundException
Unable to load DLL 'opencv_core240': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
System.TypeInitializationException: The type initializer for 'Emgu.CV.CvInvoke' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'opencv_core240': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
at Emgu.CV.CvInvoke.cvRedirectError(CvErrorCallback errorHandler, IntPtr userdata, IntPtr prevUserdata)
at Emgu.CV.CvInvoke..cctor()
--- End of inner exception stack trace ---
at Emgu.CV.CvInvoke.cvCreateImageHeader(Size size, IPL_DEPTH depth, Int32 channels)
at Emgu.CV.Image`2.AllocateData(Int32 rows, Int32 cols, Int32 numberOfChannels)
at Emgu.CV.Image`2.set_Bitmap(Bitmap value)
at Emgu.CV.Image`2..ctor(Bitmap bmp)
मैं निम्नलिखित बातें है कि मैं stackoverflow और अन्य पर मिल गया है की कोशिश की सूत्रों का कहना है:
- एक अलग निर्देशिका में अप्रबंधित OpenCV Dll के रखो और पथ वातावरण चर में इस निर्देशिका में पथ रखा, और वेब सेवा को पुनरारंभ करें।
- परीक्षण किया गया है कि सर्वर config अप्रबंधित कोड निष्पादन के लिए अनुमति देता है (हाँ)
- लाना अप्रबंधित OpenCV Dll system32 \ inetsrv में है और SysWOW64 \ inetsrv निर्देशिका
- Puting अप्रबंधित OpenCV Dll के उप-निर्देशिका '86' में में पहले उल्लेख किया फ़ोल्डरों
मैं समझता हूँ कि यह: http://msdn.microsoft.com/en-us/library/ms366723.aspx
सभी का कारण है परेशानी, हालांकि मुझे समझ में नहीं आता कि डीएलएस युक्त सही पथ को शामिल करने के लिए पथ चर का संपादन क्यों कुछ हल नहीं करता है।
2008 में इस मुद्दे के बारे में अंतिम उपयोगी पोस्ट 2008 में था, हालांकि कोई मूर्ख प्रमाण समाधान में अभी तक बेन की पेशकश नहीं की गई है, इसलिए सभी मदद की बहुत सराहना की जाती है!
क्या डीएलएल विकास मशीनों पर पंजीकृत है? i.e regsvr32 के माध्यम से 32 बिट मोड में चलाने के लिए एप्लिकेशन पूल सेट है? –
डीएलएल ने विकास मशीनों पर बेन पंजीकृत नहीं किया है (इसलिए स्थिति विकास और वेबसर्वर पर समान है), और एप्लिकेशन पूल 32 बिट ऐप्स (आईआईएस 7) – Arthur
को अनुमति देने के लिए सेट है यदि आप ओपनसीवी_कोर 240.dll पर निर्भर करते हैं तो सभी डीएल सूचीबद्ध हैं वेब सर्वर पर उपलब्ध है? –