7

से मेरे पास एक SQL Azure इंस्टेंस सेट अप हो सकता है और SQL सर्वर प्रबंधन स्टूडियो से कोई समस्या नहीं होने के साथ कनेक्ट हो सकता है। लेकिन जब मेरे ऐप कनेक्ट करने के लिए कोशिश करता है, यह त्रुटि आती:ऐप से एसक्यूएल एज़ूर से कनेक्ट नहीं हो सकता है, लेकिन एसएसएमएस

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

मैं इकाई की रूपरेखा कोड पहले 4.1 और ASP.NET MVC 3. मेरी एप्लिकेशन का उपयोग कर रहा मूल रूप से एसक्यूएल एक्सप्रेस का उपयोग कर सफलतापूर्वक विकसित किया गया था। अब मैं this tutorial to move the database to SQL Azure का उपयोग कर रहा हूं (ऐप अंततः वहां भी आगे बढ़ेगा लेकिन विकास अभी भी जारी है)।

चूंकि एसएसएमएस ठीक काम करता है, मुझे लगता है कि यह web.config पर आता है? मैं कनेक्शन स्ट्रिंग नाम के प्रत्येक संयोजन की कोशिश की है: जो मैं बारे में बहुत कम जानते हैं, लेकिन कुछ गतिविधि (सुझाव देने के लिए 192.168.1.101 मेरी मशीन है लगता है

<connectionStrings> 
    <add name="ApplicationServices" connectionString="Server=tcp:suppressed.database.windows.net,1433;Database=EventsTest;User ID=suppressed;Password=suppressed;Trusted_Connection=False;Encrypt=True;PersistSecurityInfo=True;" providerName="System.Data.SqlClient" /> 
    <add name="DomainContext" connectionString="Server=tcp:suppressed.database.windows.net,1433;Database=EventsTest;User ID=suppressed;Password=suppressed;Trusted_Connection=False;Encrypt=True;PersistSecurityInfo=True;" providerName="System.Data.SqlClient" /> 
    <add name="Events.DataAccess.EntityFramework.DomainContext" connectionString="Server=tcp:suppressed.database.windows.net,1433;Database=EventsTest;User ID=suppressed;Password=suppressed;Trusted_Connection=False;Encrypt=True;PersistSecurityInfo=True;" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

मैं भी Wireshark की कोशिश की है, 207.46.63.13 एसक्यूएल है Azure सर्वर):

 
1 0.000000 192.168.1.101 207.46.63.13 TCP [TCP segment of a reassembled PDU] 
2 0.116269 207.46.63.13 192.168.1.101 TCP ms-sql-s > bmc-net-adm [ACK] Seq=1 Ack=2 Win=8444 Len=0 
3 2.091928 192.168.1.101 207.46.63.13 TCP [TCP segment of a reassembled PDU] 
4 2.209371 207.46.63.13 192.168.1.101 TCP ms-sql-s > kmscontrol [ACK] Seq=1 Ack=2 Win=5969 Len=0 
5 2.352974 192.168.1.101 207.46.63.13 TCP [TCP segment of a reassembled PDU] 
6 2.469444 207.46.63.13 192.168.1.101 TCP ms-sql-s > vaultbase [ACK] Seq=1 Ack=2 Win=8625 Len=0 

कोई विचार क्या हो रहा है?

उत्तर

1

मैं DomainContext : DbContext वर्ग के भीतर डिबगिंग ऊपर बढ़ा दिया और पाया कि कनेक्शन स्ट्रिंग हमेशा एसक्यूएल एक्सप्रेस की ओर इशारा किया, भले ही web.config में उन सभी प्रविष्टियों कहीं ओर इशारा करते हुए थे। तब मुझे एहसास हुआ कि समस्या कन्स्ट्रक्टर में बेस क्लास को पारित पैरामीटर था।

कहीं भी लाइन के साथ मैंने सोचा कि यह पैरामीटर डेटाबेस का नाम था जिसका इस्तेमाल किया जा रहा था। अब मुझे एहसास है कि कनेक्शन स्ट्रिंग एंट्री का नाम (या कनेक्शन स्ट्रिंग स्वयं)।

+0

यह वही था जो मुझे परेशानी पैदा कर रहा था। धन्यवाद। – Kenci

0

अपनी मशीन का आईपी ढूंढें और इसे खोलने के लिए एसक्यूएल एज़ूर की फ़ायरवॉल में नियम बनाएं। यह शायद अवरुद्ध किया जा रहा है।

अधिक विवरण:

  1. अपने Azure डैशबोर्ड पर जाएं।

  2. डाटाबेस क्लिक करें

  3. अपने भंडारण खाते तो डीबी सर्वर

  4. पर क्लिक करें फ़ायरवॉल नियम क्लिक करें, फिर

  5. बस आईपी श्रेणी प्रारंभ और के रूप में आपके आईपी में डाल जोड़े आईपी ​​रेंज समाप्त

+0

मेरे पास पहले से ही है (सौभाग्य से डैशबोर्ड आपको बताता है कि आईपी क्या है) और मैं एसएसएमएस के माध्यम से किसी भी तरह से कनेक्ट कर सकता हूं? –

1

मैंने अपना कनेक्ट सेट किया आयन स्ट्रिंग स्पष्ट रूप से जब मेरी DBContext instantiating:

public class DB: DbContext .. 

var databaseConnectionString = 
    "Server=tcp:private.database.windows.net;Database=privateDB;[email protected];Password=private;Trusted_Connection=False;Encrypt=True" 

var db = new DB(databaseConnectionString); 
संबंधित मुद्दे