أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

ظهور رسالة خطأ عند تنفيذ روتين CLR أو استخدام تجميع في SQL Server: "يحتوي التجميع في مخزن المضيف على توقيع مختلف عن التجميع في GAC. (استثناء من HRESULT: 0x80131050) "

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية949080
الأعراض
خذ بعين الاعتبار السيناريوهات التالية.

السيناريو 1

إنشاء روتين (CLR) وقت تشغيل لغة عامة يشير تجمع Microsoft.NET Framework. لم يتم توثيقها تجميع.NET Framework في مقالة قاعدة المعارف 922672. وبعد ذلك، تثبيت.NET Framework 3.5 أو إصلاح جديد يستند إلى.NET Framework 2.0.

السيناريو 2

إنشاء تجميع، ومن ثم تسجيل التجميع في قاعدة بيانات Microsoft SQL Server. ثم تثبيت إصدار مختلف من التجميع في مخزن التجميع العمومي المؤقت (GAC).

عند تنفيذ إجراء CLR أو استخدام التجميع من أي من هذه السيناريوهات في SQL Server، تتلقى رسالة خطأ مشابهة لما يلي:

ملقم: Msg 6522, مستوى 16, حالة 2، سطر 1
إطار عمل.NET حدث خطأ أثناء تنفيذ إجراء المعرفة من قبل المستخدم أو تجميع 'جيتسيد':

System.IO.FileLoadException: تعذر تحميل الملف أو التجميع ' System.DirectoryServices، الإصدار = 2.0.0.0, الثقافة = محايد, PublicKeyToken = b03f5f7f11d50a3a ' أو أحد تبعياته. التجميع في المضيف مخزن يحتوي على توقيع مختلف عن التجميع في GAC. (استثناء من HRESULT: 0x80131050)

System.IO.FileLoadException:
السبب
يتحقق عندما يقوم CLR بتحميل تجميع، CLR من نفس التجميع في GAC. إذا كان نفس التجميع في GAC، يتحقق من CLR التي تطابق "معرفات إصدار الوحدة النمطية" (مفيدس) هذه التجميعات. إذا مفيدس منها لا تطابق التجميعات، تتلقى الخطأ الرسائل التي قسم "الأعراض" الإشارات.

عندما يتم إعادة ترجمة تجميع، MVID تغييرات في التجميع. لذلك، إذا قمت بتحديث برنامج.NET Framework، تجميعات.NET Framework وقد مفيدس مختلفة لأن يتم التحويل البرمجي لهذه التجميعات. بالإضافة إلى ذلك، إذا كان تحديث التجميع الخاص بك، والتجميع التحويل البرمجي. لذلك، أيضا لدى التجميع مختلف MVID.
الحل البديل

الحل 1

لحل السيناريو 1 في قسم "الأعراض"، يجب عليك تحديث تجميعات.NET Framework في SQL Server. للقيام بذلك، استخدام تبديل ASSEMBLY إلى نقطة الجديد إصدار تجميع.NET Framework في المجلد التالي:
%Windir%\Microsoft.NET\Framework\الإصدار
ملاحظةالإصدار تمثل إصدار من برنامج.NET Framework التي تثبيتها أو تحديثها.

الحل البديل الثاني

للتغلب على السيناريو 2 بوصة "الأعراض"، استخدام عبارة ALTER assembly لتحديث التجميع في قاعدة البيانات.

إذا كانت المشكلة لا تزال موجودة بعد القيام بذلك، يتم إسقاط التجميع من قاعدة البيانات، وبعد ذلك التسجيل إصدار جديد من التجميع في قاعدة البيانات.
تصريح
Microsoft أقرت أنها مشكلة في منتجات Microsoft المسردة في قسم "تنطبق على".
معلومات أخرى
لا ننصح استخدام تجميعات.NET Framework التي لم يتم توثيقها في مقالة قاعدة المعارف 922672. تسرد مقالة قاعدة المعارف 922672 التجميعات التي يتم اختبارها في بيئة استضافة CLR ملقم SQL.

لمزيد من المعلومات، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":
922672 يعتمد نهج لتجميعات.NET Framework التي لم يتم اختبارها في بيئة استضافة CLR ملقم SQL

وصف إجراءات CLR

إجراءات CLR تتضمن الكائنات التالية التي يتم تنفيذها باستخدام تكامل خادم SQL مع NET Framework CLR:
  • دالة القيم المفردة المعرفة من قبل المستخدم دالات لقيم (دالة القيم المفردة UDFs)
  • دالات لقيم الجدول المعرفة من قبل المستخدم (تففس)
  • الإجراءات المعرفة من قبل المستخدم (الاتحاد)
  • مشغلات المعرفة من قبل المستخدم
  • أنواع البيانات المعرفة من قبل المستخدم
  • تجميعات المعرفة من قبل المستخدم

تجميعات لتحديث بعد تثبيت.NET Framework 3.5

بعد تثبيت.NET Framework 3.5، يجب عليك استخدام ALTER تجميع عبارة لتحديث التجميعات التالية:
  • Accessibility.dll
  • AspNetMMCExt.dll
  • Cscompmgd.dll
  • IEExecRemote.dll
  • IEHost.dll
  • IIEHost.dll
  • Microsoft.Build.Conversion.dll
  • Microsoft.Build.Engine.dll
  • Microsoft.Build.Framework.dll
  • Microsoft.Build.Tasks.dll
  • Microsoft.Build.Utilities.dll
  • Microsoft.CompactFramework.Build.Tasks.dll
  • Microsoft.JScript.dll
  • Microsoft.VisualBasic.Vsa.dll
  • Microsoft.Vsa.dll
  • Microsoft.Vsa.Vb.CodeDOMProcessor.dll
  • Microsoft_VsaVb.dll
  • Sysglobl.dll
  • System.Configuration.Install.dll
  • System.Design.dll
  • System.DirectoryServices.dll
  • System.DirectoryServices.Protocols.dll
  • System.Drawing.dll
  • System.Drawing.Design.dll
  • System.EnterpriseServices.dll
  • System.Management.dll
  • System.Messaging.dll
  • System.Runtime.Serialization.Formatters.Soap.dll
  • System.ServiceProcess.dll
  • System.Web.dll
  • System.Web.Mobile.dll
  • System.Web.RegularExpressions.dll
تكون هذه التجميعات في المجلد التالي:
%Windir%\Microsoft.NET\Framework\v2.0.50727

كيفية المحافظة على البيانات من أنواع البيانات المعرفة من قبل المستخدم بعد إفلات تجميع

إذا قمت بإسقاط تجميع الذي يستخدم نوع بيانات المعرفة من قبل المستخدم من SQL Server، يمكنك استخدام إحدى الطرق التالية للاحتفاظ بالبيانات.

افترض أن ما يلي هو السيناريو:
  • إنشاء تجميع اسمه MyAssembly.dll.
  • مراجع التجميع MyAssembly تجميع System.DirectoryServices.dll .
  • كان نوع بيانات المعرفة من قبل المستخدم الذي اسم ميداتيتيمي.
  • يستخدم نوع البيانات ميداتيتيميMyAssembly.dll التجميع.
  • إنشاء جدول الذي هو اسم الجدول.
  • جدول الجدول يحتوي على البيانات البيانات ميداتيتيمي نوع.

الأسلوب 1: استخدام الأداة المساعدة bcp.exe

  1. استخدام الأداة المساعدة Bcp.exe مع مفتاح التبديل – n لنسخ البيانات من جدول الجدول إلى ملف. على سبيل المثال، تشغيل الأمر التالي في موجه الأوامر:
    bcp MyDatabase.dbo.MyTable out C:\MyFile.bcp -n –SSQLServerName  -T
  2. في Studio إدارة ملقم SQL، اتبع الخطوات التالية:
    1. إسقاط الجدول الجدول.
    2. إسقاط نوع البيانات ميداتيتيمي .
    3. إسقاط System.DirectoryServices.dll التجميع.
    4. إسقاط التجميع MyAssembly .
  3. في Studio إدارة ملقم SQL، اتبع الخطوات التالية:
    1. تسجيل System.DirectoryServices.dll التجميع.
    2. تسجيل التجميع MyAssembly .
    3. قم بإنشاء نوع بيانات ميداتيتيمي .
    4. إنشاء جدول جديد يحتوي على نفس بنية الجدول جدول الجدول.
  4. استخدام الأداة المساعدة Bcp.exe لرمز التبديل – n استيراد البيانات من الملف إلى جدول الجدول. على سبيل المثال، تشغيل الأمر التالي في موجه الأوامر:
    bcp MyDatabase.dbo.MyTable in C:\MyFile.bcp -n –SSQLServerName  -T

الأسلوب 2: استخدام INSERT... عبارة SELECT

افترض أن نوع البيانات ميداتيتيمي تحتل بايت 9 في المخزن.
  1. في SQL Server إدارة Studio، إنشاء جدول جديد يحتوي على عمود من نوع البيانات VARBINARY(9) عن طريق تشغيل ما يلي العبارة:
    CREATE TABLE TempTable (c1 VARBINARY(9))
  2. تشغيل الأمر التالي INSERT... حدد كشف تعبئة جدول تيمبتابل:
    INSERT INTO TempTable SELECT CAST(c1 as VARBINARY(9)) FROM MyTable
  3. في Studio إدارة ملقم SQL، اتبع الخطوات التالية:
    1. إسقاط الجدول الجدول.
    2. إسقاط نوع البيانات ميداتيتيمي .
    3. إسقاط System.DirectoryServices.dll التجميع.
    4. إسقاط التجميع MyAssembly .
  4. في Studio إدارة ملقم SQL، اتبع الخطوات التالية:
    1. تسجيل System.DirectoryServices.dll التجميع.
    2. تسجيل التجميع MyAssembly .
    3. قم بإنشاء نوع بيانات ميداتيتيمي .
    4. إنشاء جدول جديد يحتوي على نفس بنية الجدول جدول الجدول.
  5. تشغيل الأمر التالي INSERT... حدد كشف تعبئة جدول الجدول:
    INSERT INTO MyTable SELECT c1 FROM TempTable
مراجع
لمزيد من المعلومات حول الإصدار الخاص بالتجميع، قم بزيارة موقع ويب شبكة مطوري Microsoft (MSDN) التالي: من أجل مزيد من المعلومات حول كيفية تحديث تجميع، قم بزيارة ويب MSDN التالي الموقع: من أجل مزيد من المعلومات حول كيفية إسقاط تجميع، قم بزيارة ويب MSDN التالي الموقع: من أجل مزيد من المعلومات حول كيفية تسجيل تجميع في قاعدة بيانات SQL Server 2005 قم بزيارة موقع MSDN على ويب التالي: من أجل الحصول على مزيد من المعلومات حول الأداة المساعدة Bcp.exe، قم بزيارة موقع MSDN على ويب التالي:

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 949080 - آخر مراجعة: 01/07/2013 20:45:00 - المراجعة: 1.0

Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Workgroup Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition

  • kbexpertiseadvanced kbtshoot kbprb kbmt KB949080 KbMtar
تعليقات
ript type="text/JavaScript" async=""> var varAutoFirePV = 1; var varClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write(" >ss="ng-binding" id="language-zh-hk">香港特別行政區 - 繁體中文
El Salvador - Español
Panamá - Español
Uruguay - Español
대한민국 - 한국어
España - Español
Paraguay - Español
Venezuela - Español
0&did=1&t=">p;did=1&t=">r varClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write(" mp;t=">