هل يمكن أن يكون لدينا سلسلة اتصال معممة لخادم SQL و SQL Server Express؟
-
06-07-2019 - |
سؤال
لدي خدمة WCF التي يتم نشرها على الجهاز. يمكن تكوين خدمة WCF هذه إما SQL Server أو SQL Server Express.
ملاحظة : يمكن أن يكون موقع قاعدة بيانات SQL جهازًا آخر آخر عند نشر خدمة WCF.
أضع المعلومات التالية في ملف XML:
- معرف المستخدم
- كلمه السر
- اسم الخادم
- إسم الألة
في حالة SQL Server Express
ال اسم الخادم الخاصية هي "sqlexpress". داخليًا ، أقوم بإلحاق اسم الخادم بأسماء machinEname بحيث يكون اسم الخادم هو:
machinename sqlexpress
الذي يتم تمريره إلى سلسلة الاتصال.
في حالة SQL Server
عندما أمر اسم الخادم إلى SQL Server يلقي الاستثناء.
من فضلك أرشدني للحصول على أفضل نهج !!
المحلول
ما هو الاستثناء؟ كما أنني لست متأكدًا من الفرق بين ServerName و Machinename. ربما كنت تعني خادم الاسم والاستماع إلى instancename؟ يجب عليك بناء سلسلةك بهذه الطريقة (رمز الزائفة ، ليس لدي أي فكرة عن اللغة التي تستخدمها):
DataSource = ServerName
If (InstanceName != "")
DataSource += "\" + InstanceName
نصائح أخرى
يمكنك استخدام نفس تنسيق سلسلة الاتصال للاتصال بكل من SQL Server Express و Editions الكاملة.
فقط تأكد من أنك تمر بالسلسلة المناسبة ، فإن شيئًا كهذا سيكون شائعًا ، للتركيبات الافتراضية.
Data Source=MachineName\SQLExpress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
ولخادم SQL الكامل
Data Source=MachineName;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
السبب الأكثر ترجيحًا هو أن مثيل MSSQLServer يعمل تحت المثيل الافتراضي بدلاً من مثيل مسمى (وهو ما يفعله SQL Express). يتمثل العمل حوله في تكوين ملف خصائص محلية يحمل سلسلة الاتصال الخاصة بالبيئة. ثم إما مرجع الملف في ملف التكوين نفسه ، أو يكون لديك جزء من عملية الإنشاء الخاصة بك دمج المعلومات في ملف التكوين.