Momentan sunteți offline, așteptați să vă reconectați la internet

Browserul dvs. nu este acceptat

Trebuie să vă actualizați browserul pentru a utiliza site-ul.

Actualizați la cea mai recentă versiune Internet Explorer

Mesaj de eroare când aţi executa o rutina de CLR sau de a folosi un ansamblu în SQL Server: "Adunarea în magazin gazdă are o semnătură diferite decât Adunarea în GAC. (Excepţie de la HRESULT: 0x80131050) "

IMPORTANT: Acest articol a fost tradus de software-ul de traducere automată Microsoft, si nu de un traducător. Microsoft vă oferă atât articole traduse de persoane, cât şi articole traduse automat, astfel incat aveti access la toate articolele din Baza noastră de informatii în limba dvs. materna. Totuşi, un articol tradus automat nu este întotdeauna perfect. Acesta poate conţine greşeli de vocabular, sintaxă sau gramatică, la fel cum un vorbitor străin poate face greşeli vorbind limba dvs. materna. Compania Microsoft nu este responsabilă pentru nici o inexactitate, eroare sau daună cauzată de traducerea necorespunzătoare a conţinutului sau de utilizarea traducerii necorespunzătoare de către clienţii nostri. De asemenea, Microsoft actualizează frecvent software-ul de traducere automată.

Faceți clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 949080
Simptome
Luaţi în considerare următoarele scenarii.

Scenariul 1

Creaţi o rutina de runtime (CLR) limbaj comun care face referire la un ansamblu de Microsoft .NET Framework. Asamblare .NET Framework nu este documentată în Knowledge bază anghinară 922672. Apoi, instalaţi .NET Framework 3.5 sau o remediere rapidă pe bază de .NET Framework 2.0.

Scenariul 2

Creaţi un ansamblu, şi apoi treceţi în evidenţă Adunarea o bază acoperire de date Microsoft SQL Server. Apoi, când instalaţi o versiune diferită a ansamblului în Cache de asamblare globală (GAC).

Când executa CLR de rutină sau de a folosi Adunarea la oricare din aceste scenarii în SQL Server, primiţi un mesaj de eroare asemănător cu următorul:

Server: Msg 6522, nivel 16, stat 2, linia 1
Un .NET Framework Eroare în timpul executării definite de utilizator de rutină sau agregat "getsid":

System.IO.FileLoadException: Nu a putut încărca fişierul sau asamblarea "System.DirectoryServices, versiune = 2.0.0.0, cultură = neutră, PublicKeyToken = b03f5f7f11d50a3a' sau unul dintre dependenţele sale. Adunarea în gazdă Magazinul are o semnătură diferite decât Adunarea în GAC. (Excepţie de la HRESULT: 0x80131050)

System.IO.FileLoadException:
Cauză
CLR încarcă un ansamblu, atunci când CLR verifică faptul că acelaşi este în GAC. Dacă Adunarea acelaşi este în GAC, CLR verifică care meci de modulul versiune IDs (MVIDs) din aceste ansambluri. Dacă MVIDs aceste ansambluri nu se potrivesc, primiţi eroarea mesaj "Simptome" secţiunea mentiuni.

Atunci când este recompilat un ansamblu, MVID de modificările de asamblare. Prin urmare, dacă vă actualizaţi .NET Framework, .NET Framework ansambluri au diferite MVIDs deoarece aceste ansambluri sunt recompilat. În plus, Dacă actualizaţi propria adunare, ansamblul este recompilat. Prin urmare, Adunarea are, de asemenea, un alt MVID.
Remediere

Workaround la spre 1

Pentru a evita scenariul 1 în secţiunea "Simptome", trebuie să actualizaţi manual asamblări .NET Framework în SQL Server. Pentru aceasta, utilizaţi instrucţiunea ALTER Adunarea a punct la noi versiune asamblare .NET Framework în a urma pliant:
%WINDIR%\Microsoft.NET\Framework\Versiune
NotăVersiune reprezintă versiune de .NET Framework care le instalat sau actualizat.

Workaround la spre 2

Pentru a lucra în jurul scenariu 2 în "Simptome" secţiunea, utilizaţi instrucţiunea ALTER ADUNĂRII să actualizeze Adunarea în baza acoperire de date.

Dacă problema încă există după aceasta, drop Adunarea din baza acoperire de date, şi apoi Inregistreaza-te Noua versiune a Adunarea în baza acoperire de date.
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft listate în secţiunea "Se aplică la".
Informaţii suplimentare
Nu recomandăm să utilizaţi asamblările .NET Framework care nu sunt documentate în bază de cunoştinţe articol 922672. Knowledge bază anghinară 922672 liste de ansambluri care sunt testate în mediul SQL Server CLR-a găzduit.

Pentru mai multe informaţii, faceţi clic pe următorul număr de articol pentru a vedea articolul în bază de cunoştinţe Microsoft:
922672 Politica de sprijin pentru asamblări .NET Framework netestat în mediul SQL Server CLR-a găzduit

Descriere de CLR rutine

CLR rutine includ următoarele obiecte care sunt implementate prin utilizarea SQL Server integrarea cu .NET Framework CLR:
  • Scalar-evaluate funcţii definite de utilizator (scalar UDFs)
  • Tabelară de tip funcţii definite de utilizator (TVFs)
  • Procedurile definite de utilizator (UDPs)
  • Declanşează definite de utilizator
  • Tipurile acoperire de date definite de utilizator
  • Agregate definite de utilizator

Ansambluri de actualizare după ce instalaţi .NET Framework 3.5

După ce instalaţi .NET Framework 3.5, trebuie să utilizaţi ALTER Adunarea declaraţie de a actualiza la adunările următoarele:
  • 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
Aceste ansambluri sunt în următorul folder:
%WINDIR%\Microsoft.NET\Framework\v2.0.50727

Cum de a păstra date de la tipurile acoperire de date definite de utilizator, după ce fixaţi un ansamblu

Dacă fixaţi un ansamblu care utilizează un tip acoperire de date definite de utilizator din SQL Server, utilizaţi una dintre următoarele metode pentru a păstra datele.

Presupunem că este următorul scenariu:
  • Creaţi un ansamblu al cărui nume este MyAssembly.dll.
  • MyAssembly Adunarea referinţe Adunarea System.DirectoryServices.dll .
  • Ai un tip acoperire de date definite de utilizator al cărui nume este MyDateTime.
  • Tipul acoperire de date MyDateTime foloseste MyAssembly.dll Adunarea.
  • Creaţi un tabel al cărui nume este MyTable.
  • Tabelul MyTable conţine date acoperire de date MyDateTime tip.

Metoda 1: Utilizaţi utilitarul bcp.exe

  1. Utilizaţi utilitarul Bcp.exe cu n -comutator pentru a copia datele din tabelul de MyTable într-un fişier. De exemplu, executaţi următoarea comandă la un prompt de comandă:
    bcp MyDatabase.dbo.MyTable out C:\MyFile.bcp -n –SSQLServerName  -T
  2. În SQL Server Management Studio, urmaţi aceşti paşi:
    1. Picătură în tabelul MyTable.
    2. Picătură cu tipul acoperire de date MyDateTime .
    3. Picătură System.DirectoryServices.dll Adunarea.
    4. Picătură Adunarea MyAssembly .
  3. În SQL Server Management Studio, urmaţi aceşti paşi:
    1. Registru System.DirectoryServices.dll Adunarea.
    2. Inregistreaza-te de Adunarea MyAssembly .
    3. Crea tipul acoperire de date MyDateTime .
    4. Creaţi un tabel nou care are aceeaşi structură de tabel ca tabelul MyTable.
  4. Utilizaţi utilitarul Bcp.exe cu n -comutator pentru importul datelor din fişierul în tabelul MyTable. De exemplu, executaţi următoarea comandă la un prompt de comandă:
    bcp MyDatabase.dbo.MyTable in C:\MyFile.bcp -n –SSQLServerName  -T

Metoda 2: Utilizaţi Inserare... Instrucțiunea SELECT

Să presupunem că tipul acoperire de date MyDateTime ocupă 9 octeţi în depozit.
  1. În SQL Server Management Studio, creaţi un tabel nou care conţine o coloană cu tipul acoperire de date VARBINARY(9) rulând următoarele declaraţie:
    CREATE TABLE TempTable (c1 VARBINARY(9))
  2. Executaţi următoarele Inserare... Selectaţi declaraţie pentru a popula Tabelul tempTable:
    INSERT INTO TempTable SELECT CAST(c1 as VARBINARY(9)) FROM MyTable
  3. În SQL Server Management Studio, urmaţi aceşti paşi:
    1. Picătură în tabelul MyTable.
    2. Picătură cu tipul acoperire de date MyDateTime .
    3. Picătură System.DirectoryServices.dll Adunarea.
    4. Picătură Adunarea MyAssembly .
  4. În SQL Server Management Studio, urmaţi aceşti paşi:
    1. Registru System.DirectoryServices.dll Adunarea.
    2. Inregistreaza-te de Adunarea MyAssembly .
    3. Crea tipul acoperire de date MyDateTime .
    4. Creaţi un tabel nou care are aceeaşi structură de tabel ca tabelul MyTable.
  5. Executaţi următoarele Inserare... Selectaţi declaraţie pentru a popula Tabelul MyTable:
    INSERT INTO MyTable SELECT c1 FROM TempTable
Referinţe
Pentru mai multe informaţii despre versiunea de asamblare, următorul site Web Reţea Microsoft pentru dezvoltatori (MSDN): Pentru mai multe informaţii despre cum se actualizează un ansamblu, vizitaţi următorul Web MSDN site-ul: Pentru mai multe informaţii despre cum să renunţe la un ansamblu, vizitaţi următorul Web MSDN site-ul: Pentru mai multe informaţii despre cum să se înregistreze un ansamblu într-o bază acoperire de date SQL Server 2005, vizitaţi următorul site MSDN Web: Pentru mai multe informaţii despre utilitarul Bcp.exe, vizitaţi următorul site MSDN Web:

Avertisment: acest articol a fost tradus automat

Proprietăți

ID articol: 949080 - Ultima examinare: 01/07/2013 20:52:00 - Revizie: 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 KbMtro
Feedback
" + (window.location.protocol) + "//c.microsoft.com/ms.js'><\/script>");