2010-09-28 16 views
9

मुझे त्रुटि मिल रही है "जब मैं अपने रिपोर्टिंग सर्वर पर रिपोर्ट सूचीबद्ध करने का प्रयास करता हूं तो त्रुटि HTTP स्थिति 401: अनधिकृत" के साथ त्रुटि विफल हो रही है। अजीब बात यह है कि यह काम करता है जब मैं सर्वर रिपोर्टिंग सेवाओं वेब सेवा यूआरएल (http://www.example.com/reports/reportservice2005.asmx?wsdl) पर मारने वाली मेरी देव मशीन पर एएसपीनेट एप्लिकेशन चलाता हूं, लेकिन जब सर्वर पर एएसपीनेट ऐप इंस्टॉल किया जाता है (iis 7 चल रहा है) यूआरएल मुझे त्रुटि मिलती है। यहाँ मेरी सेट अप है:रिपोर्टिंग सेवा 2008: "HTTP स्थिति 401: अनधिकृत" समस्या

सर्वर:

एसक्यूएल सर्वर रिपोर्टिंग सेवाओं 2008 (नहीं R2)

वेब सेवा यूआरएल: http://www.example.com/reports/reportservice2005.asmx?wsdl

ग्राहक

बनाया गया एक प्रॉक्सी ReportingServices2005.cs

वेब.कॉन्फिग

कोड रिपोर्टों सूची:

<asp:ListView ID="lvReportList" runat="server"> 
<LayoutTemplate> 
    <ul> 
     <asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder> 
    </ul> 
</LayoutTemplate> 
<ItemTemplate> 
    <li> 
     <asp:HyperLink runat="server" ID="hpReportLink" NavigateUrl='<%#Eval("Url")%>'><%#Eval("Name")%></asp:HyperLink> 
    </li> 
</ItemTemplate> 
<EmptyDataTemplate> 
    <div> 
     No reports to display. 
    </div> 
</EmptyDataTemplate> 

पीछे कोड:

protected void Page_Load(object sender, EventArgs e) 
{ 
if (!Page.IsPostBack) 
{ 
    string rWebServiceUrl = ConfigurationManager.AppSettings["RSWebserviceUrl"]; 
    string reportServerFolder = ConfigurationManager.AppSettings["ReportServerFolder"]; 
    string domain = ConfigurationManager.AppSettings["RSDomain"]; 
    string userName = ConfigurationManager.AppSettings["RSUsername"]; 
    string password = ConfigurationManager.AppSettings["RSPassword"]; 

    objRS.Url = rWebServiceUrl; 
    objRS.Credentials = new NetworkCredential(userName, password, domain); 

    ReportingServices2005.CatalogItem[] items = objRS.ListChildren(reportServerFolder, false); 

    var reportList = from p in items 
        select new 
        { 
         Name = p.Name, 
         Url = String.Format("{0}?reportPath={1}/{2}", ReportViewerUrl, reportServerFolder, p.Name) 
        }; 

    lvReportList.DataSource = reportList; 
    lvReportList.DataBind(); 

} 
} 
+1

यहां 'objRS' क्या है? –

उत्तर

13

कई मंचों और लेख Googling के कई घंटे के बाद, मैंने पाया है कि विंडोज सर्वर में एक सुरक्षा सुविधा "लूपबैक बुलाया जांचें "(http://support.microsoft.com/kb/926642) इस मुद्दे का कारण बन रहा था। ऐसा इसलिए हुआ क्योंकि मेरे पास एक ही मशीन पर मेरा रिपोर्ट सर्वर और आईआईएस सर्वर दोनों हैं और मैं रिपोर्ट तक पहुंचने के लिए पूरी तरह से योग्य डोमेन नाम (FQDN: http://www.example.com/reportserver) का उपयोग कर रहा था। मैंने इसे डोमेन नाम i.e के बजाय सर्वर के नाम का उपयोग करके हल किया। मुझे उम्मीद है इससे किसी को सहायता मिलेगी।

2

यह जांचने के लिए कुछ और है कि मैं आज में भाग गया - यह सुनिश्चित करना सुनिश्चित करें कि उपयोगकर्ता का विंडोज खाता लॉक नहीं है। इससे पर 401 not authorized लौटने के लिए अनुरोध होंगे।

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