2012-05-31 3 views
26

में खोला नहीं जा सकता है मैंने बनाम 2010 में .net4.0 में क्रिस्टल रिपोर्ट बनाई है। जब मैं वेबसाइट प्रकाशित करता हूं तो यह त्रुटि फेंकता है "जेआरसी इंजन द्वारा संसाधित एक दस्तावेज़ सी ++ स्टैक में खोला नहीं जा सकता"। मैंने सर्वर में वेबसाइट प्रकाशित की है और मैं इसे क्लाइंट से एक्सेस करने का प्रयास कर रहा हूं, मैंने app_code में .rpt फ़ाइल को keet किया था, लेकिन फिर एक ही त्रुटि हो रही है। इसलिए मैंने एक फ़ोल्डर wwwroot बनाया और उस फ़ोल्डर में मैंने asp_client और वेबसाइट फ़ोल्डर रखा और मैंने wwwroot को भौतिक पथ दिया। क्रिस्टल रिपोर्ट को छोड़कर सब कुछ ठीक काम कर रहा है। त्रुटि केजेआरसी इंजन द्वारा संसाधित एक दस्तावेज़ सी ++ स्टैक

ReportDocument rptDoc = new ReportDocument(); 
    DataSetForCrystalReport ds = new DataSetForCrystalReport(); 
    DataSetForCrystalReport dsHeader = new DataSetForCrystalReport(); 
    DataTable dt = new DataTable(); 
    DataTable dtHeader = new DataTable(); 
    dt.TableName = "dtBill"; 
    string ReceiptNo = Request.QueryString["ReceiptNo"]; 
    dt = getAllOrders(ReceiptNo).Tables[0]; 
    dtHeader = TblcompanysettingsService.GetOrganizationDetails(); 
    ds.Tables[1].Merge(dt); 
    ds.Tables[2].Merge(dtHeader); 
    rptDoc.Load(Server.MapPath("crBill.rpt")); 
    rptDoc.SetDataSource(ds); 
    CrystalReportViewer1.ReportSource = rptDoc; 

स्टैक ट्रेस: ​​

[COMException (0x80041811): Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack.] 
    CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options) +0 
    CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options) +147 
    CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +422 

[CrystalReportsException: Load report failed.] 
    CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +549 
    CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob) +1613 
    CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename) +189 
    GenerateBill.Page_Load(Object sender, EventArgs e) in e:\ShareFolder\Movie\wwwroot\Website\GenerateBill.aspx.cs:33 
    System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25 
    System.Web.UI.Control.LoadRecursive() +71 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3064 
+1

तो http://stackoverflow.com/questions/4294762/crystal-reports-for-visual-studio-2010- आतंक मदद नहीं करता है? –

+0

नहीं। मैंने उस प्रश्न में उत्तर दिया हर चीज की कोशिश की। – sharad

+0

सुनिश्चित करें कि आपके कोड में क्रिस्टल रिपोर्ट फ़ाइल @ निर्दिष्ट स्थान उपलब्ध है .. या कोड में लिखा गया पथ गलत हो सकता है –

उत्तर

3

बाहर मिले समाधान, मैं पहले दृश्य स्टूडियो 2005 का अपना क्रिस्टल रिपोर्ट के साथ मैं उपयोग कर रहा था और उसके बाद .cs फ़ाइल कोड में इस प्रकार है अलग-अलग क्रिस्टल रिपोर्ट के साथ वीएस -2010 में अपग्रेड किया गया जिसे मैंने एसएपी से डाउनलोड किया था। मैंने शोध किया और एसएपी से पाया:

क्रिस्टल रिपोर्ट के प्रत्येक संस्करण में इसका अपना विशिष्ट रनटाइम सही ढंग से तैनात किया जाना चाहिए, यह महत्वपूर्ण है कि तैनात रनटाइम विजुअल स्टूडियो .NET संदर्भित क्रिस्टल रिपोर्ट असेंबली के साथ समझौते में हो। आपकी परियोजना में

इसलिए मैं अनइंस्टॉलर व्यापक संस्करण और केवल एक संस्करण का उपयोग किया और यह काम किया। :) आपकी चिंता के लिए ta.speot.is धन्यवाद। यह कभी कोडिंग समस्या नहीं थी।

23

मेरे लिए यह काम

  1. सही rpt फ़ाइल पर क्लिक करें।
  2. चुनें गुण
  3. एक बदल दिया है। "सामग्री"

    बी के रूप में कार्य बनाएं। आउटपुट निर्देशिका में कॉपी करें "कॉपी न करें"

    सी। कस्टम उपकरण और कस्टम उपकरण नाम स्थान के लिए खाली रखो

+0

यह मेरे लिए चाल है! – bdwakefield

+0

धन्यवाद !!! यह वास्तव में भी मेरी मदद की! –

+0

"सामग्री" के रूप में कार्य करें मुझे – hozefam

5

मैं अगर यह किसी और या नहीं किसी को मदद मिलेगी पता नहीं है, लेकिन मैं इस मुद्दे को हो रही थी, और यह एक ऐसी के लिए निकला इस तरह आसानी से ठीक कर लिए गूंगा कदम मैंने .rpt फ़ाइल के फ़ाइल नाम को गलत टाइप किया था ... फ़ाइल नाम में दो शब्दों के बीच एक जगह थी (जिसे मैं आमतौर पर इस कारण से कभी नहीं करता) लेकिन जब मैंने अपने कोड में नाम शामिल किया, तो मैंने अंतरिक्ष छोड़ दिया था बाहर। फ़ाइल नाम को सही किया, समस्या चली गई।

+1

क्या आप इस उत्तर को सरल बना सकते हैं? यह समय पढ़ने का कचरा है "चाहे वह मदद करेगा" या "गूंगा चाल के लिए सरल फिक्स"। – quantum

42

.rpt फ़ाइल में अपना रास्ता जांचें! त्रुटि विवरण के वास्तविक कारण से कोई लेना देना नहीं है। यह सिर्फ आपकी। आरपीटी फ़ाइल नहीं मिल रहा है!

मेरे मामले में पथ एक .rpt रिपोर्ट सबफ़ोल्डर में बैठे फ़ाइल के लिए होना था:

Server.MapPath("~/Reports/InvoiceRegular.rpt"); 

मेरे लिए काम किया।

+0

और यदि आपका पथ सही है, तो जांचें कि आईआईएस पूल खाते ने फ़ाइल को अनुमतियां पढ़ी हैं। – GSerg

1

मुझे परिस्थितियों का एक और सेट मिला है जिसके अंतर्गत यह असुरक्षित त्रुटि प्रकट होती है।

यदि आप विजुअल स्टूडियो में अपने वेब एप्लिकेशन को चलाने/डीबग करने के लिए F5 करते हैं लेकिन अभी भी क्रिस्टल रिपोर्ट्स (2011) में रिपोर्ट खुली है, तो आपको त्रुटि मिल जाएगी।

आज मुझे लगभग एक घंटे के लिए पागल कर दिया!

5

बस इन चरणों का

(1) अपने ".rpt" फाइल पर राइट क्लिक करें का चयन करें करो "गुण"

1.a) के रूप में कार्य बनाएँ "सामग्री"

1.b) आउटपुट निर्देशिका में कॉपी करें "हमेशा कॉपी करें"

(2) .rpt फ़ाइलपर अपना रास्ता देखेंसर्वर। मैपपाथ ("आपका पथ");

जैसे: Server.MapPath("~/Reports/MyReport.rpt");

नोट: यदि रिपोर्ट दर्शकों के साथ दोनों rpt और aspx पेज एक ही फ़ोल्डर तो पूरा पथ देने के लिए कोई जरूरत नहीं कर रहे हैं, तो आप Server.MapPath में केवल filename.rpt दे सकते हैं।

0

यह मेरे साथ हुआ और सिरदर्द के घंटों के बाद मुझे पता चला कि यह एक फ़ाइल अनुमति समस्या थी। कुछ कारणों से जब हमारे सीआर देव सर्वर से साझा कस्टम .rpt निर्देशिका में प्रतिलिपि बनाते हैं तो फ़ाइल पर अनुमतियां सभी जैक हो जाती हैं और मुझे फ़ाइल में कई उपयोगकर्ता समूहों के लिए अनुमतियां जोड़नी पड़ती थीं।

1

कॉपी और से फ़ोल्डर (aspnet_client) पेस्ट (सी: \ inetpub \ wwwroot) वेबसाइट फ़ोल्डर में और यह सुनिश्चित करें कि .rpt फ़ाइल एक ही फ़ोल्डर

0

में है अपने .rpt की जांच करें फ़ाइल मौजूद है या नहीं। अगर स्थानीय से होस्टिंग फ़ोल्डर में प्रतिलिपि नहीं है, तो यह काम शुरू कर देगा।

1

यह सुनिश्चित करना कि फ़ाइल पथ सही है @ serop का उल्लेख है। मैंने यह भी देखा है कि रिपोर्ट फ़ोल्डर प्रकाशित नहीं होगा। तो रिपोर्ट फ़ोल्डर मैन्युअल रूप से प्रकाशित करना पड़ा।

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