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

 "Default": "Server=172.17.0.2; Database=ERPDb; User=sa; Password =******;"

कंटेनर नाम के साथ

 "Default": "Server=ecstatic_hermann; Database=ERPDb; User=sa; Password=******;"

होस्टनाम के साथ:

 "Default": "Server=f45840a59623; Database=ERPDb; User=sa; Password=******;"

टर्मिनल में लोकलहोस्ट का उपयोग करके कनेक्ट करते समय यह सफलतापूर्वक कनेक्ट हो रहा है

$ mssql -s localhost -p Technocrat123
Connecting to localhost...done

sql-cli version 0.6.2
Enter ".help" for usage hints.

लेकिन एप्लिकेशन चलाते समय कनेक्शन विफल हो जाता है।

किसी भी मदद की सराहना करें। अग्रिम में धन्यवाद।

यदि लोकलहोस्ट का उपयोग कर रहे हैं तो त्रुटि है

Login failed for user ''. Reason: An attempt to login using SQL authentication failed. Server is configured for Integrated authentication only.
53
user2695433 16 अगस्त 2017, 14:17

4 जवाब

सबसे अधिक संभावना है कि आपके सर्वर का नाम लोकलहोस्ट और पोर्ट 1401 है (जो डॉकर कंटेनर सेटअप के लिए डिफ़ॉल्ट है)। इसलिए, आपको निम्न कनेक्शन स्ट्रिंग का उपयोग करने की आवश्यकता होगी:

"Default": "Server=localhost,1401; Database=ERPDb; User=sa; Password =******;"
20
David Poindexter 19 फरवरी 2018, 05:25

मुझे आज यह समस्या थी और मैंने इसे एक अलग नेटवर्क (डिफ़ॉल्ट "ब्रिज" नेटवर्क का उपयोग करने के बजाय) का उपयोग करके हल किया।

  1. docker network create test_network

  2. docker container run -p 1433:1433 -d --name mssql -v mssql_data:/var/opt/mssql -e SA_PASSWORD=********** -e ACCEPT_EULA=Y --network=test_network microsoft/mssql-server-linux

  3. docker container run -p 5000:80 --rm -e ASPNETCORE_ENVIRONMENT=Development --name aspnetcore --network=test_network aspnetcore-image

इसके अलावा मेरे पास ऐसी कनेक्शन स्ट्रिंग है:

Server=mssql;Database=master;User=sa;Password=**********;

आईपी ​​​​पते के साथ कनेक्शन स्ट्रिंग के संबंध में पिछले उत्तरों के बारे में, यह एक अच्छा तरीका नहीं है, क्योंकि इस पते को गतिशील रूप से बदला जा सकता है, कंटेनर नामों का उपयोग होस्टनाम के रूप में करना बेहतर है।

7
Suraj Rao 10 पद 2018, 12:28

मैंने SQL सर्वर कंटेनर IP पता का उपयोग करके इसके IP पते के लिए sql सर्वर कंटेनर का निरीक्षण करके इसे हल किया जैसा कि नीचे दिखाया गया है

docker inspect -f "{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}" <ContainerID | ContainerName>
0
alphacoder 13 अप्रैल 2020, 11:47

मेरे पास यह समस्या थी और इसे कोड की इस पंक्ति के साथ हल किया:

// ऐपसेटिंग.जेसन

{
"ConnectionStrings": {
 "DefaultConnection": "Server=localhost;User Id = SA;Password=********;Initial Catalog = myMacDb;"
...

जहां ********* मेरा एसक्यूएल पासवर्ड है।

-2
Milena 30 पद 2019, 19:44