अंक: एएसपी.नेट 4.0 में, मैं रिपोर्टों की सूची प्राप्त करने के लिए अपने एसएसआरएस 2005 सर्वर की ReportService2005.asmx
वेब सेवा का उपयोग करता हूं। .NET में भी, मैं अपने एमएस-एसक्यूएल 2005 डेटाबेस के साथ संवाद करने के लिए इकाई फ्रेमवर्क का उपयोग करता हूं। जब मैं अपने वेब सर्वर के रूप में विजुअल स्टूडियो डेवलपमेंट सर्वर का उपयोग करता हूं, तो एसएसआरएस और एसक्यूएल को ठीक काम करता है। लेकिन जब मैं आईआईएस 5.1 पर स्विच करता हूं, तो एसएसआरएस और एंटिटी कोड दोनों त्रुटियों का उत्पादन करते हैं। मैं का उपयोग केवल आईआईएस में विंडोज/एकीकृत प्रमाणीकरण का उपयोग करता हूं।आईआईएस में विंडोज/एकीकृत प्रमाणीकरण क्यों एसएसआरएस और एसक्यूएल में उपयोगकर्ता प्रमाण पत्र पास नहीं करता है?
त्रुटियाँ: SSRS के लिए, मैं The request failed with HTTP status 401: Unauthorized.
प्राप्त इकाई की रूपरेखा के लिए, मैं Login failed for user ''. The user is not associated with a trusted SQL Server connection.
का प्रयास किया गया समाधान मिलती है: Web.Config मैं <identity impersonate="true" />
जोड़ा और कहा कि तय इकाई की रूपरेखा त्रुटियों में लेकिन एसएसआरएस त्रुटियों नहीं। मैंने उपयोगकर्ता नाम और पासवर्ड शामिल करने के लिए identity
संदर्भ का विस्तार किया, और यह सभी त्रुटियों को ठीक किया गया।
प्रश्न: क्यों निर्दिष्ट करने मेरी यूज़रनेम और पासवर्ड त्रुटियों को ठीक करता है, और यही कारण है कि एसक्यूएल कहता है मैं एक उपयोगकर्ता नाम (''
) को निर्दिष्ट नहीं कर रहा हूँ? मैंने सोचा कि विंडोज प्रमाणीकरण स्वचालित रूप से वर्तमान उपयोगकर्ता का प्रतिरूपण करता है। मैं web.config में "सेवा" खाते को हार्डकोड किए बिना इसे कैसे ठीक कर सकता हूं?
+1 ठोस उत्तर। – JonH
आप सही हैं। मैं web.config और '((WindowsIdentity) HttpContext.Current.User.Identity) में' <पहचान प्रतिरूपण = "सत्य" /> 'का उपयोग करके समाप्त हुआ। एसएसआरएस के संदर्भ के लिए IMPersonate()' और सही ढंग से मुझे प्रतिरूपित किया गया । –