2012-04-03 17 views
19

मैंने SO पर समान प्रश्नों को देखा है, लेकिन जहां तक ​​मैं कह सकता हूं, मेरे मुद्दे से काफी कुछ भी मेल नहीं खाता है।फ़ाइल या असेंबली को लोड नहीं किया जा सका CrystalDecisions.ReportAppServer.ClientDoc

अपवाद संदेश:

फ़ाइल या विधानसभा लोड नहीं कर सका CrystalDecisions.ReportAppServer.ClientDoc, संस्करण = 13.0.2000.0, संस्कृति = तटस्थ, PublicKeyToken = 692fbea5521e1304 'या अपनी निर्भरता में से एक। सिस्टम निर्दिष्ट फाइल का पता लगाने में नाकामयाब रहा।

फ़ाइल मेरे जीएसी में है। मैं 32 बिट मशीन (विंडोज 7) पर विकास कर रहा हूं वीएस -2010 चल रहा हूं, सबकुछ .NET4 है। लक्ष्य होस्टिंग मशीन 64-बिट विन 2008 आर 2 है। मेरी स्थानीय मशीन में वीएस -2010 के लिए सीआर स्थापना है; होस्टिंग मशीन में वीएस -2010 के लिए 64-बिट रनटाइम हैं। मैं इस वेब एप्लिकेशन के लिए "कोई भी CPU" मोड में अपना पूरा कोड संकलित कर रहा हूं।

यह मेरे दिमाग को उड़ा रहा है कि यह जीएसी में फ़ाइल नहीं ढूंढ सकता है। यह एक आईआईएस आवेदन है; क्या अनुमति के कुछ प्रकार हैं? मुझे लगता है कि आईआईएस के पास जीएसी तक पहुंच होगी।

कुछ सुझावों के बारे में कुछ सराहना की जाएगी।

+0

कई तृतीय पक्ष डीएलएस में मैंने काम किया है, पब्लिककिट टोकन 32-बिट और 64-बिट संस्करणों के लिए अलग है। यदि यह एक मशीन पर काम करता है, लेकिन दूसरा नहीं, तो यह देखने के लिए कुछ जगह हो सकती है। यह सिर्फ एक अनुमान है, हालांकि ... – David

+0

वैसे ही उस सार्वजनिक कुंजी टोकन वाली फ़ाइल जीएसी में मौजूद है, जैसा कि वर्णन किया गया है। मुझे समझ में नहीं आता कि मेरा वेब एप्लिकेशन इसे क्यों नहीं ढूंढ सकता। –

उत्तर

14

की जाँच करें यह जवाब पता चला है हास्यास्पद रूप से सरल था, लेकिन यह जरूरी था कि यह क्यों जरूरी था।

सर्वर पर आईआईएस प्रबंधक में, मैंने 32-बिट असेंबली को अनुमति देने के लिए अपने वेब एप्लिकेशन के लिए एप्लिकेशन पूल सेट किया है।

ऐसा लगता है कि यह 64-बिट सिस्टम पर लगता है कि आपको 32 बिट असेंबली चाहिए। विचित्र।

+0

या वैकल्पिक रूप से: सी: \ inetpub \ AdminScripts \ adsutil.vbs SET w3svc/AppPools/Enable32bitAppOnWin64 0 – ariscris

+0

मेरा केस एक WPF अनुप्रयोग था। परियोजना की प्राथमिकताओं में "32-बिट वरीयता" विकल्प अक्षम करना था। – RonaldPaguay

3

1) नेट फ्रेमवर्क 4,0 http://msdn.microsoft.com/en-us/library/bb398202.aspx

2) करने के लिए करने के लिए ग्राहकों का प्रोफाइल से आपके .net प्रोफ़ाइल बदलें अपनी एम्बेड Interop प्रकार को चिह्नित करता

Embed Interop Types flag http://weblogs.asp.net/cazzu/archive/2011/03/11/check-your-embed-interop-types-flag-when-doing-visual-studio-extensibility-work.aspx

+0

मेरी सभी परियोजनाएं पहले से ही 4.0 प्रोफाइल का उपयोग करती हैं; मुझे क्लाइंट प्रोफाइल के साथ कभी भी बहुत सफलता नहीं मिली है (डुनो कि यह किसी भी परियोजना के लिए डिफ़ॉल्ट क्यों है)। मैं कल सुबह इंटरऑप सेटिंग्स की जांच करूंगा। –

+0

मेरे सभी संदर्भ पहले से ही इंटरऑप प्रकार एम्बेड नहीं करने के लिए सेट हैं। –

+0

आह क्षमा करें –

2

64-बिट सिस्टम के संबंध में 32-बिट समर्थन चाहते हैं। मुझे यह इतना विचित्र नहीं लगता है:

हालांकि 64-बिट सिस्टम पर तैनात किया गया, इसका मतलब यह नहीं है कि सभी संदर्भित असेंबली आवश्यक 64-बिट क्रिस्टल रिपोर्ट असेंबली हैं। इसके अलावा, क्रिस्टल रिपोर्ट असेंबली मुख्य रूप से लीगेसी डीएलएल के संग्रह के लिए रैपर हैं, जिन पर वे आधारित हैं। मुख्य रूप से संदर्भित असेंबली द्वारा 32-बिट डीएलएल की आवश्यकता होती है। त्रुटि संदेश "असेंबली लोड नहीं कर सकता" में इन डीएलएल भी शामिल हैं। दृष्टिहीन रूप से देखने के लिए, www.dependencywalker.com पर जाएं और सीधे आईआईएस सर्वर पर असेंबली पर 'निर्भर करता है' चलाएं।

2

आपको बस तैनाती सर्वर पर Crystal Report Report Run Time डाउनलोड स्थापित करने की आवश्यकता है। यदि समस्या अभी भी दिखाई देती है, तो अपने प्रोजेक्ट मुख्य फ़ोल्डर में asp_client फ़ोल्डर को चेक करें।

+0

इसे रनटाइम इंस्टॉल किए बिना काम करना चाहिए। क्लाउड सर्वर पर अपनी वेबसाइट चलाते समय समाधान क्या है और आपके पास डेस्कटॉप तक पहुंच नहीं है? यूनिट परीक्षण के बारे में क्या? –

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