تصحيح: ظهور رسالة خطأ "يتعذر إنشاء سياق SSPI" عند محاولة الاتصال بجهاز كمبيوتر ملقم SQL Server 2000 SP3


ملخص


عند محاولة الاتصال بكمبيوتر خادم Microsoft SQL Server 2000 Service Pack 3 (SP3) من كمبيوتر عميل، يفشل الاتصال مع رسالة إعلام بخطأ إذا لا يمكن حل اسم الملقم من عنوان بروتوكول إنترنت (IP). يحدث هذا السلوك لأن يفسر SQLOLEDB القيمة المرجعة للدالة كوننيكتيونجيتسفروسير ل dbnetlib غير صحيح.
  • الإصلاح عاجل بحل هذه المشكلة.
  • للتغلب على هذه المشكلة، يدوياً إنشاء إدخال مضيف لعنوان IP في الكمبيوتر العميل.
  • لإعادة إنتاج المشكلة، إنشاء وتكوين عنوان IP الحيوي للكمبيوتر الملقم، وثم الاتصال بكمبيوتر الملقم باستخدام محلل استعلام SQL أو عارض مجموعة الصفوف من جهاز كمبيوتر عميل.

الأعراض


عند محاولة توصيل جهاز كمبيوتر عميل إلى كمبيوتر ملقم Microsoft SQL Server 2000 SP3، لا يمكن حل اسم الملقم من عنوان بروتوكول إنترنت (IP)، وفشل الاتصال.

عند الاتصال بكمبيوتر خادم SQL Server 2000 SP3 باستخدام محلل استعلام SQL، تتلقى رسالة الخطأ التالية:
ملقم: Msg 11004، مستوى 16 حالة 1
[Microsoft] [برنامج تشغيل خادم ODBC SQL] يتعذر إنشاء سياق SSPI
عند استخدام في SQL Server OLE DB الموفر (SQLOLEDB) للاتصال بكمبيوتر ملقم SQL Server 2000 باستخدام عارض مجموعة الصفوف، تتلقى رسالة الخطأ التالية:
المصدر: "Microsoft OLE DB الموفر ل SQL Server"

واجهة: IID_IDBInitialize
النتيجة: 0x80004005 = E_FAIL

إيسقليرورينفو: [HY000] [0x00002afc]
IErrorInfo: [0x00002afc] "يتعذر إنشاء سياق SSPI"

الملف: D:\MDACTools\rowsetviewer\CBase.cpp
الخط: 1067

السبب


عند استدعاء دالة كوننيكتيونجيتسفروسير مكتبة dbnetlib SQLOLEDB، فإنه غير صحيح يفسر أن هذه الدالة تقوم بإرجاع قيمة منطقية. تم تصميم الدالة كوننيكتيونجيتسفروسير لإرجاع فراغ. لذلك، يصبح كل ما يوجد في التسجيل EAX قيمة الإرجاع.


استدعاء دالة كوننيكتيونجيتسفروسير داخليا الدالة gethostbyaddr . دالة gethostbyaddr يحصل على اسم المضيف المتوافق مع عنوان IP معين. إذا فشلت الدالة gethostbyaddr ، تقوم بإرجاع حرف صفر للتسجيل EAX. لذلك، ترجع الدالة كوننيكتيونجيتسفروسير قيمة FALSE . يؤدي هذا السلوك فشل تسجيل دخول إلى كمبيوتر ملقم SQL Server 2000 SP3.


الحل


يتوفر إصلاح عاجل معتمد من Microsoft. ومع ذلك، يهدف هذا الإصلاح العاجل إلى حل المشكلة الموضحة في هذه المقالة فقط. تطبيق هذا الإصلاح العاجل فقط على الأنظمة التي تواجه هذه المشكلة بالتحديد.

إذا كان يتوفر الإصلاح العاجل للتنزيل، يوجد مقطع "توفر تنزيل الإصلاح عاجل" أعلى مقالة قاعدة المعارف. إذا لم يظهر هذا المقطع، إرسال طلب إلى خدمة العملاء ل Microsoft والدعم للحصول على الإصلاح العاجل.

ملاحظة: في حالة حدوث مشكلات إضافية أو يجب إجراء استكشاف للأخطاء وحلها، قد يلزم إنشاء طلب خدمة منفصل. سيتم تطبيق تكاليف الدعم المعتادة على أسئلة الدعم الإضافية والمشكلات التي لا يعمل على حلها هذا الإصلاح العاجل بالتحديد. للحصول على قائمة أرقام هواتف خدمة العملاء ل Microsoft والدعم أو لإنشاء طلب خدمة منفصل، قم بزيارة موقع Microsoft التالي على الويب:ملاحظة: يعرض النموذج "توفر تنزيل الإصلاح العاجل" اللغات التي يتوفر الإصلاح الجديد. في حالة عدم ظهور اللغة الخاصة بك، يكون بسبب عدم توفر إصلاح عاجل لتلك اللغة. إصدار "اللغة الإنجليزية" من هذا الإصلاح العاجل سمات الملف (أو الأحدث) المسرودة في الجدول التالي. يتم سرد التواريخ والأوقات الخاصة بهذه الملفات بالتوقيت العالمي المتفق عليه (UTC). عند عرض معلومات الملف، يتم تحويلها إلى التوقيت المحلي. لمعرفة الفرق بين التوقيت العالمي المتفق عليه والتوقيت المحلي، استخدم علامة التبويب المنطقة الزمنية في أداة التاريخ والوقت في "لوحة التحكم".

Date Time Version Size File name
--------------------------------------------------------------

15-Jun-2004 00:22 2000.85.1045.0 28,672 Dbnmpntw.dll
15-Jun-2004 00:21 2.80.1045.0 147,456 Msadds.dll
15-Jun-2004 00:21 2.80.1045.0 512,000 Msado15.dll
15-Jun-2004 00:21 2.80.1045.0 163,840 Msadomd.dll
15-Jun-2004 00:21 2.80.1045.0 184,320 Msadox.dll
15-Jun-2004 00:21 2.80.1045.0 53,248 Msadrh15.dll
15-Jun-2004 00:21 2.80.1045.0 225,280 Msdaora.dll
15-Jun-2004 00:21 2.80.1045.0 147,456 Msdart.dll
15-Jun-2004 00:21 2.575.1045.0 139,264 Msorcl32.dll
15-Jun-2004 00:21 3.525.1045.0 221,184 Odbc32.dll
15-Jun-2004 00:22 2000.85.1045.0 24,576 Odbcbcp.dll
15-Jun-2004 00:21 2.80.1045.0 442,368 Oledb32.dll
15-Jun-2004 00:21 2000.85.1045.0 503,808 Sqloledb.dll
15-Jun-2004 00:21 2000.85.1045.0 401,408 Sqlsrv32.dll
15-Jun-2004 00:08 2000.85.1045.0 208,896 Sqlxmlx.dll

الحل البديل


للتغلب على هذه المشكلة، يدوياً إنشاء إدخال مضيف على كمبيوتر العميل من أجل عنوان IP الذي تريد الاتصال به.
  1. بدء تشغيل Windows Explorer.
  2. حدد موقع الملف Hosts، وقم بفتح الملف في "المفكرة".

    ملاحظة: تحديد موقع الملف في مسار %SystemRoot%\System32\Drivers\Etc.
  3. يضاف ما يلي في نهاية الملف:
    IP عشوائي اسم الكمبيوتر

    ملاحظة: IP العشوائي هو عنصر نائب لعنوان IP الذي ليس قيد الاستخدام من قبل جهاز كمبيوتر آخر في شبكة الاتصال. اسم الكمبيوتر هو عنصر نائب لاسم الكمبيوتر الذي يحتوي SQL Server 2000 SP3 تعمل من خلاله. يجب فصل اسم اسم الكمبيوتر وعنوان IP عشوائي بمسافة واحدة على الأقل.
  4. من القائمة ملف ، انقر فوق حفظ.
  5. قم بإغلاق الملف.

الحالة


أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "ينطبق على".

مزيد من المعلومات


خطوات إعادة إنشاء المشكلة

تكوين عنوان IP الحيوي

  1. تسجيل الدخول كمسؤول لجهاز الكمبيوتر الذي يقوم بتشغيل SQL Server 2000 SP3.
  2. في "لوحة التحكم"، انقر نقراً مزدوجاً فوق اتصالات شبكة الاتصال.
  3. انقر نقراً مزدوجاً فوق الاتصال المحلي الذي تريد تعديله.
  4. في مربع الحوار حالة اتصال المنطقة المحلية ، انقر فوق خصائص. يظهر مربع الحوار خصائص الاتصال المحلي .
  5. في المربع يستخدم هذا الاتصال العناصر التالية ، انقر فوق Internet Protocol (TCP/IP)، ومن ثم انقر فوق خصائص. يظهر مربع الحوار خصائص Internet Protocol (TCP/IP) .
  6. انقر فوق الحصول على عنوان IP تلقائياًومن ثم انقر فوق موافق.
  7. في مربع الحوار خصائص اتصال محلي ، انقر فوق إغلاق.

  8. في مربع الحوار حالة اتصال المنطقة المحلية ، انقر فوق إغلاق.
  9. انقر فوق ابدأ، ثم انقر فوق تشغيل، واكتب cmdوثم انقر فوق موافق.
  10. في موجه الأوامر، اكتب الأمر ping اسم الكمبيوتر، واضغط ENTER.

    ملاحظة: اسم الكمبيوتر هو عنصر نائب لاسم الكمبيوتر الذي يقوم بتشغيل SQL Server 2003

    تظهر رسالة خطأ مشابهة لما يلي:
    تنفيذ الأمر ping اسم الكمبيوتر [IP حيوي] مع 32 بايت بيانات:

    رد من عنوان IP الحيوي: بايت = الوقت 32 < 1ms TTL = 128
    رد من عنوان IP الحيوي: بايت = الوقت 32 < 1ms TTL = 128
    رد من عنوان IP الحيوي: بايت = الوقت 32 < 1ms TTL = 128

    إحصائيات Ping IP الحيوي:
    حزم: إرسال = 4، المتلقاة = 4، Lost = 0 (0% فقدان)
    عدد مرات الرحلات ذهابا في ميلي ثانية:
    الحد الأدنى = 0ms، الحد الأقصى = 0ms، متوسط = 0ms
    ملاحظة: IP الحيوي عنصر نائب لدينامية الملكية الفكرية للكمبيوتر اسم الكمبيوتر .
  11. لإنهاء موجه الأوامر واكتب exitثم اضغط على ENTER.
  12. كرر الخطوات c إلى e. انقر فوق استخدام عنوان IP التالي.
  13. في المربع عنوان IP ، اكتب عنوان IP الحيوي .

    ملاحظة: IP الحيوي عنصر نائب لدينامية الملكية الفكرية للكمبيوتر اسم الكمبيوتر .
  14. في المربع قناع الشبكة الفرعية ، اكتب قناع الشبكة الفرعية لشبكة الاتصال.
  15. في مربع العبارة الافتراضية ، اكتب عنوان IP للكمبيوتر أو الجهاز على شبكة الاتصال الذي يصل الشبكة إلى شبكة اتصال أخرى أو بإنترنت.
  16. في المربع خادم DNS المفضل ، اكتب عنوان IP للكمبيوتر الذي يعمل على حل أسماء المضيفين إلى عناوين IP.
  17. في المربع خادم DNS البديل ، اكتب عنوان IP للكمبيوتر DNS الذي تريد استخدامه إذا كان ملقم DNS (نظام أسماء المجالات) المفضل يصبح غير متوفر.
  18. انقر فوق خيارات متقدمة. تظهر إعدادات TCP/IP المتقدمة .
  19. تحت عناوين IP، انقر فوق إضافة. يظهر مربع الحوار عنوان TCP/IP .
  20. في المربع عنوان IP ، اكتب عنوان IP عشوائي .

    ملاحظة: IP العشوائي هو عنصر نائب لعنوان IP الذي ليس قيد الاستخدام من قبل جهاز كمبيوتر آخر في شبكة الاتصال.
  21. في المربع قناع الشبكة الفرعية ، اكتب قناع الشبكة الفرعية لشبكة الاتصال، ومن ثم انقر فوق إضافة.
  22. في إعدادات TCP/IP المتقدمة، انقر فوق "موافق".
  23. انقر فوق " موافق" في خصائص Internet Protocol (TCP/IP) . في مربع الحوار خصائص اتصال محلي ، انقر فوق إغلاق. في مربع الحوار حالة اتصال المنطقة المحلية ، انقر فوق إغلاق.

الاتصال بكمبيوتر خادم SQL Server 2000 SP3 من كمبيوتر عميل إلى محلل استعلام SQL

  1. بدء تشغيل محلل استعلام SQL. يظهر مربع الحوار الاتصال ب SQL Server .
  2. في المربع خادم SQL ، اكتب IP عشوائي.

    ملاحظة: IP العشوائي هو عنصر نائب لعنوان IP الذي ليس قيد الاستخدام من قبل جهاز كمبيوتر آخر في شبكة الاتصال.
  3. ضمن الاتصال باستخدام، انقر فوق " مصادقة Windows".
  4. انقر فوق موافق. لاحظ رسالة الخطأ المذكورة في قسم "الأعراض".

الاتصال بكمبيوتر خادم SQL Server 2000 SP3 من كمبيوتر عميل إلى عارض مجموعة الصفوف

  1. بدء تشغيل عارض مجموعة الصفوف. يظهر إطار رووسيتفيوير Microsoft OLE DB .
  2. من القائمة ملف ، انقر فوق اتصال كاملة. يظهر مربع الحوار اتصال كاملة-لا وصف متاح .
  3. موفر من القائمة، انقر فوق SQLOLEDB ضمن الاتصال.
  4. في المربع مصدر البيانات ، اكتب IP عشوائي ضمن المصدر.

    ملاحظة: IP العشوائي هو عنصر نائب لعنوان IP الذي ليس قيد الاستخدام من قبل جهاز كمبيوتر آخر في شبكة الاتصال.
  5. ضمن تسجيل الدخول، انقر فوق DBPROMPT_NOPROMPT في القائمة مطالبة .
  6. في علامة التبويب خصائص ، انقر فوق خيارات متقدمة. يظهر مربع الحوار IDBProperties::SetProperties .
  7. انقر لتحديد خانة الاختيار DBPROP_AUTH_INTEGRATED ، ومن ثم انقر فوق موافق.
  8. في مربع الحوار اتصال كاملة-لا وصف متاح ، انقر فوق " موافق". لاحظ رسالة الخطأ المذكورة في قسم "الأعراض".
ملاحظة: يجب أن يكون الكمبيوتر العميل وجهاز الكمبيوتر الخادم SQL Server 2000 SP3 في نفس المجال. عند محاولة الاتصال بالكمبيوتر ملقم SQL Server 2000 SP3 مع IP عشوائية من نفس الكمبيوتر، سيقوم بالاتصال بكمبيوتر خادم SQL Server 2000 SP3 دون أخطاء.

المراجع


لمزيد من المعلومات، قم بزيارة مواقع ويب شبكة مطوري Microsoft (MSDN) التالية:
كوننيكتيونجيتسفروسير
http://msdn2.microsoft.com/en-us/library/Aa470056.aspx
نظرة عامة حول أدوات اختبار OLE DB
http://msdn2.microsoft.com/en-us/library/ms721219.aspx
للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":

كيفية تغيير عنوان IP لمحول شبكة اتصال في Windows Server 2003 323444

للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":

824684 وصف للمصطلحات القياسية المستخدمة في وصف تحديثات برامج Microsoft