Chybové hlásenie pri vykonávať rutinné CLR alebo použite zostavu v SQL Server: "zhromaždenie prichystané hostiteľ má iný podpis ako zhromaždenie v GAC. (Výnimka z HRESULT: 0x80131050) "

Preklady článku Preklady článku
ID článku: 949080 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

Príznaky

Zvážte nasledovné scenáre.

Scenár č.1

Môžete vytvoriť spoločný jazyk runtime (CLR) rutina, ktorá odkazuje Microsoft .NET Framework zhromaždenia. .NET Framework zhromaždenie nie je zdokumentovaná v Článok databázy Knowledge Base 922672. Potom, môžete nainštalovať .NET Framework 3.5 alebo .NET Framework 2.0-založené opravy.

Scenár 2

Môžete vytvoriť zostavu, a potom sa zaregistrovať zhromaždenie v databáze Microsoft SQL Server. Potom, môžete nainštalovať inú verziu zhromaždenia v globálnych zhromaždení Cache (GAC).

Keď vykonať rutinné CLR alebo použiť zostavu z jednej z týchto scenárov v SQL Server, zobrazí chybové hlásenie podobné nasledujúcemu:

Server: Msg 6522, úroveň 16, štát 2, riadok 1
.NET Framework Vyskytla sa chyba počas výkonu používateľom definovaný rutina alebo agregát "getsid":

System.IO.FileLoadException: Nemožno načítať súbor alebo montáž "System.DirectoryServices, verzia = 2.0.0.0, kultúra = neutrálny, PublicKeyToken = b03f5f7f11d50a3a "alebo jeden z jeho závislosti. Zhromaždenie v hostiteľskom obchod má iný podpis ako zhromaždenie v GAC. (Výnimka z HRESULT: 0x80131050)

System.IO.FileLoadException:

Príčina

Keď CLR načíta zhromaždenie, CLR overí, či rovnakej zostavy v GAC. Ak rovnakej zostavy je v GAC, overí CLR ktoré Identifikácie verzie modulu (MVIDs) týchto zhromaždení zápas. Ak MVIDs z týchto zostavy sa nezhodujú, zobrazí chybové hlásenie, ktoré "Príznaky" oddiel spomína.

Keď zhromaždenie prekompilovat, MVID z montáž zmeny. Preto, ak aktualizujete .NET Framework, .NET Framework zostáv majú rôzne MVIDs pretože tieto zostavy sú prekompilovat. Navyše Ak aktualizujete svoj vlastný montáž, montáž je prekompilovat. Preto zhromaždenie tiež má iný MVID.

Ako problém obísť

Riešenie 1

Obísť scenára 1 v časti "Príznaky", musíte manuálne aktualizovať .NET Framework zostáv v SQL Server. K tomu, používať ALTER zhromaždenia vyhlásenie bod na nové verzie .NET Framework zhromaždenia v nasledovný priečinok:
%Windir%\Microsoft.NET\Framework\Verzia
PoznámkaVerzia predstavuje Verzia rozhrania .NET Framework, nainštalovali alebo aktualizovali.

Riešenie 2

Obísť scenár 2 v "Príznaky" oddiel, použiť vyhlásenie Zhromaždenia zmeniť aktualizovať zhromaždenia v databáza.

Ak problém pretrváva po vykonaní tejto drop zostavy z databázy, a potom zaregistrovať Nová verzia zhromaždenie v databáze.

Stav

Microsoft potvrdila, že ide o problém produktov spoločnosti Microsoft, ktoré sú uvedené v časti "Vzťahuje sa na".

Ďalšie informácie

Neodporúčame, že použijete .NET Framework zostáv, ktoré nie sú uvedené v článku databázy Knowledge Base 922672. Článok databázy Knowledge Base 922672 obsahuje zoznam zostáv, ktoré sú testované v prostredí SQL Server CLR-hostil.

Ďalšie informácie nájdete po kliknutí na nasledovné číslo článku publikovaného v Microsoft Knowledge Base:
922672 Podpora politiky pre nevyskúšané .NET Framework zostáv v SQL Server CLR-hostil prostredí

Popis rutiny CLR

CLR rutiny patrí nasledujúce objekty, ktoré sú implementované pomocou SQL Server integráciu s .NET Framework CLR:
  • Skalára oceňujú používateľom definované funkcie (skalárne UDF)
  • Tabuľka oceňuje používateľom definované funkcie (TVFs)
  • Používateľom definované postupy (UDPs)
  • Spúšťače definované používateľom
  • Typy údajov definované používateľom
  • Používateľom definovanú agregátov

Zostavy aktualizovať po inštalácii .NET Framework 3.5

Po nainštalovaní .NET Framework 3.5, musíte použiť ALTER MONTÁŽ vyhlásenie aktualizovať nasledovné zostavy:
  • 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
Tieto zostavy sú v nasledujúcom priečinku:
%Windir%\Microsoft.NET\Framework\v2.0.50727

Ako sa zachovať údaje z typy údajov definované používateľom po presunutí zhromaždenie

Ak pretiahnete zostavy, ktorá používa typ používateľom definovaných údajov zo servera SQL Server, môžete použiť jeden z nasledujúcich metód zachovať údaje.

Predpokladať, že toto je scenár:
  • Môžete vytvoriť zostavu ktorého meno je MyAssembly.dll.
  • MyAssembly zhromaždenie Odkazy System.DirectoryServices.dll zhromaždenia.
  • Máte používateľom definované údaje typu, ktorého meno je MyDateTime.
  • MyDateTime údajový typ používa MyAssembly.dll montáž.
  • Vytvoríte tabuľku, ktorého meno je MyTable.
  • MyTable tabuľka obsahuje údaje MyDateTime údajov typ.

Metóda 1: Použite pomôcku bcp.exe

  1. Použite pomôcku Bcp.exe spolu s prepínač -n zakáže kopírovať údaje z MyTable tabuľky do súboru. Napríklad spustiť nasledujúci príkaz v príkazovom riadku:
    bcp MyDatabase.dbo.MyTable out C:\MyFile.bcp -n –SSQLServerName  -T
  2. V SQL Server Management Studio, postupujte nasledovne:
    1. Kvapka tabuľky MyTable.
    2. Vynechá typ údajov MyDateTime .
    3. Pokles System.DirectoryServices.dll montáž.
    4. Pokles MyAssembly zhromaždenie.
  3. V SQL Server Management Studio, postupujte nasledovne:
    1. Registrovať System.DirectoryServices.dll montáž.
    2. Zaregistrovať na MyAssembly zhromaždení.
    3. Vytvoriť typ údajov MyDateTime .
    4. Vytvoriť novú tabuľku, ktorá má rovnakú štruktúru ako tabuľka tabuľke MyTable.
  4. Použite pomôcku Bcp.exe spolu s prepínač -n zakáže na Import údajov zo súboru do tabuľky MyTable. Napríklad spustiť nasledujúci príkaz v príkazovom riadku:
    bcp MyDatabase.dbo.MyTable in C:\MyFile.bcp -n –SSQLServerName  -T

Metóda 2: Použitie VLOŽKA... Príkaz SELECT

Predpokladať, že typ údajov MyDateTime zaberá 9 bytov v sklade.
  1. V SQL Server Management Studio, vytvorte novú tabuľku obsahuje stĺpec typu údajov VARBINARY(9) spustením nasledujúce vyhlásenie:
    CREATE TABLE TempTable (c1 VARBINARY(9))
  2. Spustiť nasledujúce Vložiť... Vyberte vyhlásenie k naplneniu TempTable tabuľka:
    INSERT INTO TempTable SELECT CAST(c1 as VARBINARY(9)) FROM MyTable
  3. V SQL Server Management Studio, postupujte nasledovne:
    1. Kvapka tabuľky MyTable.
    2. Vynechá typ údajov MyDateTime .
    3. Pokles System.DirectoryServices.dll montáž.
    4. Pokles MyAssembly zhromaždenie.
  4. V SQL Server Management Studio, postupujte nasledovne:
    1. Registrovať System.DirectoryServices.dll montáž.
    2. Zaregistrovať na MyAssembly zhromaždení.
    3. Vytvoriť typ údajov MyDateTime .
    4. Vytvoriť novú tabuľku, ktorá má rovnakú štruktúru ako tabuľka tabuľke MyTable.
  5. Spustiť nasledujúce Vložiť... Vyberte vyhlásenie k naplneniu MyTable tabuľka:
    INSERT INTO MyTable SELECT c1 FROM TempTable

Odkazy

Ďalšie informácie o verzii zostavy, Webovej lokalite webová lokalita Microsoft Developer Network (MSDN):
http://msdn2.Microsoft.com/en-us/library/51ket42z (VS.80) .aspx
Pre Ďalšie informácie o aktualizovaní zhromaždenie, navštívte nasledujúce webové MSDN lokalita:
http://msdn2.Microsoft.com/en-us/library/ms186711.aspx
Pre Ďalšie informácie o tom, ako k poklesu zhromaždenie, navštívte nasledujúce webové MSDN lokalita:
http://msdn2.Microsoft.com/en-us/library/ms177514.aspx
Pre Ďalšie informácie o spôsoboch registrácie zhromaždenie v databáze SQL Server 2005 navštívte nasledujúce webovej lokalite MSDN:
http://msdn2.Microsoft.com/en-us/library/ms189524.aspx
Pre Ďalšie informácie o Bcp.exe utility, navštívte nasledujúce webovej lokalite MSDN:
http://msdn2.Microsoft.com/en-us/library/ms162802.aspx

Vlastnosti

ID článku: 949080 - Posledná kontrola: 7. januára 2013 - Revízia: 1.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • 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 2005 Server Workgroup
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Enterprise
Kľúčové slová: 
kbexpertiseadvanced kbtshoot kbprb kbmt KB949080 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem: 949080

Odošlite odozvu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com