मुझे पता है कि यह लगभग एक डुप्लिकेट है: ASP.NET और SQL Server 2008 में उपयोगकर्ता "NT AUTHORITY \ IUSR" के लिए त्रुटि "लॉगिन विफल हुआ और लॉग इन उपयोगकर्ता 'उपयोगकर्ता नाम' के लिए विफल हुआ - System.Data.SqlClient.SqlException LINQ in बाहरी परियोजना / कक्षा पुस्तकालय लेकिन कुछ चीजें मेरे सर्वर पर अन्य appliations की तुलना में जोड़ नहीं है और मुझे यकीन नहीं है क्यों।
उपयोग किए जा रहे बक्से:
वेब बॉक्स
SQL बॉक्स
SQL परीक्षण बॉक्स
मेरा आवेदन:
मेरे पास ASP.NET वेब अनुप्रयोग है, जो एक वर्ग पुस्तकालय का संदर्भ देता है जो LINQ-to-SQL का उपयोग करता है। क्लास लाइब्रेरी में कनेक्शन स्ट्रिंग को ठीक से सेट किया गया है। लॉगिन के अनुसार उपयोगकर्ता 'यूज़रनेम' के लिए असफल रहा - System.Data.SqlClient.SqlException बाहरी प्रोजेक्ट / क्लास लाइब्रेरी में LINQ के साथ मैंने इस कनेक्शन स्ट्रिंग को वेब एप्लिकेशन में भी जोड़ा।
कनेक्शन स्ट्रिंग SQL क्रेडेंशियल का उपयोग करता है (इसलिए वेब ऐप और क्लास लाइब्रेरी दोनों में):
<add name="Namespace.My.MySettings.ConnectionStringProduction"
connectionString="Data Source=(SQL Test Box);Initial Catalog=(db name);Persist Security Info=True;User ID=ID;Password=Password"
providerName="System.Data.SqlClient" />
इस कनेक्शन को सर्वर एक्सप्लोरर में जोड़ने के माध्यम से काम करने की पुष्टि की गई। यह कनेक्शन स्ट्रिंग my .dbml फ़ाइल का उपयोग कर रहा है।
समस्या:
मुझे निम्नलिखित त्रुटि मिलती है:
System.Data.SqlClient.SqlException: Login failed for user 'DOMAIN\MACHINENAME$'.
अब इस संदर्भ को संदर्भित करते हुए ASP.NET और SQL Server 2008 में उपयोगकर्ता "NT AUTHORITY \ IUSR" के लिए त्रुटि "लॉगिन विफल हो गया, यह कहता है कि यह वास्तव में स्थानीय नेटवर्क सेवा है और किसी अन्य गैर-डोमेन नाम का उपयोग करने से काम नहीं चलेगा।
लेकिन मैं उलझन में हूँ क्योंकि मैंने SQL बॉक्स और SQL टेस्ट बॉक्स SQL प्रबंधन स्टूडियो दोनों को चेक किया है और दोनों में NT AUTHORITY/NETWORK SERVICE
सुरक्षा -> लॉगिन, डेटाबेस स्तर पर है, जो सुरक्षा के तहत सूचीबद्ध नहीं है -> उपयोगकर्ता, लेकिन डेटाबेस स्तर पर सुरक्षा -> उपयोगकर्ता मैं कनेक्शन स्ट्रिंग में प्रदर्शित उपयोगकर्ता है।
वेब सर्वर पर NTFS स्तर पर, अनुमतियों में NETWORK SERVICE का पूर्ण नियंत्रण है।
मेरे भ्रमित होने का कारण यह है क्योंकि मेरे वेब सर्वर पर कई अन्य वेब अनुप्रयोग हैं, जो SQL बॉक्स और SQL टेस्ट बॉक्स दोनों पर संदर्भ डेटाबेस हैं, और वे सभी काम करते हैं। लेकिन मैं उनके और मेरे वर्तमान अनुप्रयोग के बीच एक अंतर नहीं खोज सकता, इसके अलावा मैं एक क्लास लाइब्रेरी का उपयोग कर रहा हूं। क्या वह बात होगी? NTFS अनुमतियों की जाँच, सर्वर और डेटाबेस के स्तर पर सुरक्षा लॉगिन की स्थापना, कनेक्शन स्ट्रिंग और कनेक्ट करने की विधि (SQL सर्वर क्रेडेंशियल्स), और IIS एप्लिकेशन पूल और अन्य फ़ोल्डर विकल्प, सभी समान हैं।
ये एप्लिकेशन मेरे SQL बॉक्स में से किसी की अनुमति के बिना मशीन नाम जोड़ने के बिना क्यों काम करते हैं? लेकिन इस समस्या को ठीक करने के लिए एक लिंक मुझे बता रहा है।