2012-10-11 23 views
17

मेरे पास एक वेब प्रपत्र है जिसमें एक रिपोर्ट व्यूअर नियंत्रण होता है, एक डीआईवी तत्व है, इसलिए मैं देख सकता हूं कि पृष्ठ वास्तव में प्रस्तुत करता है। मैं देखता हूं कि मेरा पृष्ठ ठीक से लोड हो रहा है, मैं फिडलर में रिपोर्ट सेवा को देख रहा हूं, लेकिन कुछ भी प्रदर्शित नहीं होता है।रिपोर्ट व्यूअर कंट्रोल (वेब) खाली रिपोर्ट दिखाता है

वर्तमान में, मैं स्थिर पाठ के साथ एक रिपोर्ट का उपयोग कर रहा हूं, इस पर कोई प्रश्न नहीं, यह सुनिश्चित करने के लिए कि मैं इस मुद्दे को अलग करता हूं।

मेरे पेज इस प्रकार है:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ReportViewer.aspx.cs" Inherits="PeopleNet.Web.Views.Reports.ReportViewer" %> 

<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" 
    Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %> 

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server"> 
      <Scripts> 
       <asp:ScriptReference Path="~/scripts/jquery-1.7.2.js" /> 
       <asp:ScriptReference Path="~/scripts/fixReportViewer.js" /> 
      </Scripts> 
     </asp:ScriptManager> 

     <div> 
      This is the report viewer page... 
     </div> 
     <rsweb:ReportViewer ID="ReportViewer1" runat="server"></rsweb:ReportViewer> 
    </form> 
</body> 
</html> 

रिपोर्ट प्रदर्शित करने के लिए कोड है:

<system.web> 
    <!-- abbreviated... --> 
    <httpHandlers> 
     <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" validate="false" /> 
    </httpHandlers> 
</system.web> 
:

protected void Page_Load(object sender, EventArgs e) 
{ 
    this.ReportViewer1.ServerReport.ReportServerUrl = ConfigurationFacade.ReportServerUri; 
    this.ReportViewer1.ServerReport.ReportPath = { path to report name }; 
    this.ReportViewer1.ServerReport.ReportServerCredentials = new ReportServerCredentials(); // custom class implementing IReportServerCredentials as described in various places around the web, including SO 
    this.ReportViewer1.ServerReport.Refresh(); 
} 

मेरे web.config फ़ाइल HttpHandlers के रूप में आवश्यक के साथ कॉन्फ़िगर किया गया है

और:

<system.webServer> 
    <!-- abbreviated... --> 
    <handlers> 
     <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" /> 
    </handlers> 
</system.webServer> 

सर्वर विंडोज 2008 और SQL सर्वर 2008 R2 चलाता है।

मैं दर्शक की एसक्यूएल सर्वर 2012 संस्करण का उपयोग कर रहा है, क्योंकि हम 2012

मैं बार-बार सत्यापित कर दिया है करने के लिए हमारे वातावरण को अद्यतन करने की प्रक्रिया में हैं कि रिपोर्ट ReportManager से पहुँचा जा सकता है, कोई मुद्दों के साथ ।

मैं अन्य ब्राउज़रों के साथ बताए गए विभिन्न मुद्दों को देखते हुए आईई 9 में इसे एक्सेस करने का प्रयास कर रहा हूं।

मैं वर्तमान में (केवल परीक्षण के लिए) रिपोर्ट प्रमाण पत्र के रूप में अपने प्रमाण पत्र पारित कर रहा हूं। मैं एक रिपोर्टिंग सेवा प्रशासक हूं, साथ ही सर्वर पर सर्वर प्रशासक समूह के सदस्य भी हूं।

मैंने ईवेंट लॉग और रिपोर्ट सर्वर सर्वर सर्विस दोनों की जांच की है, और कुछ भी नहीं मिला है।

अद्यतन: जब गलत पर AsyncRendering बदलने के लिए, और सुनिश्चित करें कि मैं एक खाली संग्रह के साथ करने के लिए "SetParameters" कोशिश मत करो की तरह लग रहा है, यह ज्यादातर को मंजूरी दे दी हो जाता है:

this.ReportViewer1.AsyncRendering = false; 

मैं क्या कर रहा हूँ कॉन्फ़िगरेशन/कोड में गायब है?

+0

बस एक मूर्खतापूर्ण चेक/सवाल से सभी glimse सेटिंग को निकाल दिया: आप एक नया, बुनियादी रिपोर्ट (जैसे सिर्फ एक हार्डकोडेड पाठ के साथ पाठ बॉक्स) के साथ-साथ इस जाँच की है? साथ ही, क्या आप रिपोर्टव्यूयर नियंत्रणों का उपयोग कर रहे हैं जो आप उपयोग कर रहे हैं? – Jeroen

+0

हां, वर्तमान में, मैं इस पर स्थिर पाठ के साथ एक साधारण पृष्ठ का उपयोग कर रहा हूं, यह सुनिश्चित करने के लिए कि मैं इस मुद्दे को अलग कर सकता हूं। – reallyJim

+1

क्या आपको अभी भी कोई समस्या है, या आपके अपडेट का मतलब है कि आपने इसे हल कर लिया है? –

उत्तर

1

एमएसडीएन पर this blog entry है जो चर्चा करता है कि एसिंक्रोनस प्रतिपादन कैसे काम करता है।

इसके अतिरिक्त, यह उल्लेख करता है कि (जैसा कि टिप्पणियों में कहा गया था) सिंक्रोनस प्रतिपादन पृष्ठ में सामग्री को एम्बेड करता है, जबकि एसिंक्रोनस प्रतिपादन एक फ्रेम में सामग्री प्रस्तुत करता है। फ्रेम का आकार "गणना करना मुश्किल है" और SizeToReportContent संपत्ति को अनदेखा किया जाता है।

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

टिप्पणियों में उल्लिखित the article में, रिपोर्ट के रूप में असीमित रूप से रिपोर्ट को प्रतिबिंबित करने से नियंत्रण की ऊंचाई शून्य पिक्सल तक गिर जाएगी यदि कोई सापेक्ष ऊंचाई उपयोग की जाती है। यह समझा सकता है कि कुछ भी क्यों प्रदर्शित नहीं होता है। आप नियंत्रण के लिए ऊंचाई निर्दिष्ट करने का प्रयास कर सकते हैं। उस लेख में अन्य सुझाव भी हैं।

यह मानते हुए कि आपकी समस्या SQL Server 2008 R2 SSRS संस्करण में है, जो मुझे लगता है कि वीएस 2008 से आकर्षित होता है। SQL सर्वर 2012 एसएसआरएस मुझे लगता है कि वीएस 2010 पर आकर्षित होता है, जो कि उन मुद्दों को नहीं माना जाता है, इसलिए जब आप अपना अपग्रेड पूरा करें, यह समस्या दूर हो सकती है।

1

मेरे पास बिल्कुल वही लक्षण था: एक रिपोर्ट पूरी तरह से खाली पृष्ठ के साथ प्रदान की गई थी। मेरे लिए उत्पादन में मामला था, लेकिन यह विकास पर्यावरण में काम किया।

रिपोर्ट में दो पैरामीटर थे और आरडीएल में दोनों डिफ़ॉल्ट मान निर्दिष्ट किए बिना थे। रिपोर्ट को एएसपीएक्स कोड में कॉल करते समय मैंने गलती से केवल एक पैरामीटर पारित किया था। दूसरे पैरामीटर में विकास मशीन के रिपोर्ट सर्वर पर एक डिफ़ॉल्ट मान सेट था लेकिन उत्पादन में नहीं। (हां, रिपोर्ट सर्वर आरडीएल फ़ाइल में डिफ़ॉल्ट सेटिंग्स से स्वतंत्र रूप से पैरामीटर डिफ़ॉल्ट निर्दिष्ट करने की अनुमति देता है।) परिणामस्वरूप विकास में प्रस्तुत रिपोर्ट लेकिन उत्पादन में नहीं।

मुझे फिडलर के साथ प्रतिक्रिया एक्सएमएल देखकर यह मिला। इसमें एक तत्व था जो मुझे बता रहा था कि पैरामीटर मान अमान्य था। दुर्भाग्य से रिपोर्ट व्यूअर स्वयं लापता पैरामीटर के बारे में कोई त्रुटि संदेश नहीं दिखाता है और केवल एक खाली पृष्ठ प्रदर्शित करता है - जो समस्या की जड़ को खोजने में मुश्किल बनाता है।

+0

मैं प्रतिक्रिया एक्सएमएल कैसे देख सकता हूं? जिस तरह से मेरी परियोजना स्थापित की गई है, प्रतिक्रिया देखने के लिए स्रोत कोड में ब्रेकपॉइंट लगाने की कोई जगह नहीं है। क्या लॉगिंग समायोजित करने का कोई तरीका है, या क्या? –

+0

धन्यवाद। यह मेरी समस्या हल हो गई। मेरे पास एक अप्रयुक्त पैरामीटर था जिसमें डिफ़ॉल्ट मान नहीं था। एक बार जब मैंने इसे हटा दिया, तो मेरी रिपोर्ट सही ढंग से दिखाई दी। – user3340627

+0

इसके बजाय फ़िडलर उपयोग करते हैं, तो आप सिर्फ बाद रिपोर्ट पैरामीटर निर्दिष्ट करें ('ReportViewer1.LocalReport.SetParameters (lst)' के रूप में कुछ) एक ब्रेकपाइंट रख सकते हैं, तो, तत्काल खिड़की में पैरामीटर 'के रूप में वर r = reportViewer1 किसी भी मनमाने ढंग से चर के लिए आवंटित। LocalReport.GetParameters() ', फिर क्विकवॉच के साथ" आर "में प्रत्येक पैरामीटर की सामग्री का पता लगाएं। आप आसानी से समस्याग्रस्त मान पैरामीटर की पहचान कर सकते हैं। –

0

मेरी रिपोर्ट भी खाली दिख रही थी। मैंने गुणों के साथ खेला और अंत में यह दिखाया गया।

aspx पेज में ReportViewer नियंत्रण पर ProcessingMode संपत्ति बदलने मेरे लिए काम किया:

<rsweb:ReportViewer ID="ReportViewer1" runat="server" 
    Width="100%" ProcessingMode="Remote"> 
</rsweb:ReportViewer> 

यह है कि मैं क्या है:

<rsweb:ReportViewer ID="ReportViewer1" runat="server" ZoomMode="PageWidth" 
    Font-Names="Verdana" Font-Size="8pt" Width="100%" ProcessingMode="Remote" 
    ShowParameterPrompts="False" ShowToolBar="True" ShowCredentialPrompts="False" 
    ShowFindControls="False" ShowZoomControl="False" CssClass="ReportViewer"> 
</rsweb:ReportViewer> 

web.config:

<configuration> 
    <connectionStrings> 
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/> 
    </connectionStrings> 
    <system.web> 

    <httpHandlers> 
     <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false" /> 
    </httpHandlers> 

    <compilation debug="true" targetFramework="4.0"> 
     <assemblies> 
     <add assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
     <add assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
     <add assembly="Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
     <add assembly="System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
     </assemblies> 
    </compilation> 
    <authentication mode="Forms"> 
     <forms loginUrl="~/Account/Login.aspx" timeout="2880"/> 
    </authentication> 
    <membership> 
     <providers> 
... 
     </providers> 
    </roleManager> 
    </system.web> 
    <system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    <handlers> 
     <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    </handlers> 
    </system.webServer> 
</configuration> 
3

इस समस्या का मेरा समाधान रिपोर्ट दर्शक की ऊंचाई को 100% पर सेट करने का प्रयास करने से संबंधित था। इसके परिणामस्वरूप कोई रिपोर्ट नहीं दिख रही है। ऊंचाई को एक पीएक्स मान (यानी 900 पीएक्स) में बदलना रिपोर्टवायर काम कर रहा है।

0

कई समस्याएं जब तुम खाली रिपोर्ट प्राप्त होते हैं:

  1. आईआईएस पाइपलाइन; 6 बनाम IIS7 IIS और ऊपर सुनिश्चित करें कि आप सही ढंग से registerd HttpHandler है

IIS7 सेटिंग्स

<system.webServer> 
    <handlers> 
     <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" /> 
    </handlers> 

More details

सही पंजीकरण आप में आईआईएस अनुप्रयोग पूल स्विच करने का प्रयास कर सकते हैं याद किया तो बनाओ Classic मोड Managed Pipeline Mode

अपना पंजीकरण ठीक है, तो आप Integrated मोड का उपयोग करने में सक्षम होना चाहिए

  1. एक और हैंडलर ReportViewer

के साथ हस्तक्षेप मेरे मामले में यह Glimpse था।झलक एक बहुत शक्तिशाली उपकरण है और यह डेवलपर मशीन पर रिपोरवीयर के साथ मिलकर काम करता है लेकिन इसे तैनात ग्राहक सर्वर पर समस्याएं हैं। समाधान आसान था, JST web.config