Momentálne ste offline a čaká sa, kým sa znova pripojíte na internet

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) "

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
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): Pre Ďalšie informácie o aktualizovaní zhromaždenie, navštívte nasledujúce webové MSDN lokalita: Pre Ďalšie informácie o tom, ako k poklesu zhromaždenie, navštívte nasledujúce webové MSDN lokalita: 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: Pre Ďalšie informácie o Bcp.exe utility, navštívte nasledujúce webovej lokalite MSDN:

Upozornenie: Tento článok bol preložený automaticky.

Vlastnosti

ID článku: 949080 – Posledná kontrola: 01/07/2013 20:53:00 – Revízia: 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 2005 Server Workgroup, Microsoft SQL Server 2005 Express Edition, Microsoft SQL 2005 Server Enterprise

  • kbexpertiseadvanced kbtshoot kbprb kbmt KB949080 KbMtsk
Pripomienky
tml>