В настоящее время вы работаете в автономном режиме; ожидается повторное подключение к Интернету

При выполнения подпрограммы среды CLR или использовать сборку в SQL Server 2005 появляется сообщение: «сборки в хранилище главного узла имеет другую подпись не сборку в глобальный кэш СБОРОК. (Исключение из HRESULT: 0x80131050)»

ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.

Эта статья на английском языке:949080
Проблема
Рассмотрим следующие сценарии.

В сценарии 1

Создайте подпрограмму общеязыковой среды выполнения (CLR) язык, который ссылается на Корпорация Майкрософт.NET Framework сборки. .NET Framework сборки не описана в Статья базы знаний 922672. Затем, установки.NET Framework 3.5 или.NET Framework 2.0 на исправление.

Сценарий 2

Создать сборку, а затем зарегистрировать сборки в базе данных Microsoft SQL Server 2005. Затем, установить другую версию сборки в глобальный кэш сборок (GAC).

После выполнения процедуры среды CLR или использовать сборку из такой ситуации в SQL Server 2005, сообщение об ошибке следующего вида:
Сервер: Сообщение 6522, уровень 16, состояние 2, строка 1
A.NET Framework Произошла ошибка во время выполнения определяемой пользователем подпрограммы или статистической функции «getsid»:

System.IO.FileLoadException: Не удалось загрузить файл или сборку "Пространство имен System.DirectoryServices, версии 2.0.0.0, Culture = = neutral, PublicKeyToken = b03f5f7f11d50a3a "или одна из ее зависимостей. Сборка в узле хранилище имеет другую подпись не сборку в глобальный кэш СБОРОК. (Исключение из HRESULT: 0x80131050)

System.IO.FileLoadException:
Причина
Когда среда CLR загружает сборку, среда CLR проверяет ту же сборку в глобальный кэш СБОРОК. Если же сборка находится в глобальном кэше СБОРОК, среда CLR проверяет , Идентификаторы версии модуля (MVIDs) из этих сборок совпадают. Если MVIDs этих сборки не совпадают, сообщение об ошибке появляется сообщение, Упоминание в разделе «Проблема».

При перекомпиляции сборки MVID из изменения сборки. Следовательно Если обновление.NET Framework.NET Framework сборки у разных MVIDs так как эти сборки будут перекомпилированы. Кроме того, Если обновление пользовательских сборок, сборки повторная компиляция. Таким образом сборки также относится к другому MVID.
Временное решение

Способ 1

Чтобы обойти сценарий 1 в в разделе «Проблема», необходимо вручную обновить .NET Framework сборки в SQL Server 2005. Чтобы сделать это, используйте ИЗМЕНЕНИЕ СБОРКИ инструкции точка в новый версия.NET Framework сборки в следующие папки:
%Windir%\Microsoft.NET\Framework\Версия
Примечание Версия представляет версия.NET Framework, которые установлены или обновлены.

Способ 2

Чтобы обойти сценарий 2 в в разделе «Проблема», использование ИЗМЕНЕНИЕ СБОРКИ инструкции, чтобы обновить сборку в База данных.

Если проблема все еще существует. После этого удалить сборку из базы данных, а затем Регистрация Новая версия сборка в базе данных.
Статус
Корпорация Майкрософт подтверждает, что это проблема в продуктах Майкрософт, перечисленных в разделе «Относится к».
Дополнительная информация
Не рекомендуется использовать.NET Framework сборки, которые не описаны в статье 922672 базы знаний. Набор знаний Статья 922672 список сборок, которые проверяются в SQL Server 2005 Среда размещения среды CLR.

Для получения дополнительных сведений нажмите кнопку следующий номер статьи базы знаний Майкрософт:
922672Политика поддержки для проверялась.NET Framework сборки в среде размещения среды CLR SQL Server 2005

Описание процедур среды CLR

Подпрограммы CLR включить следующие объекты, которые реализуются с помощью Интеграция SQL Server с.NET Framework CLR:
  • Определяемые пользователем скалярные функции (скалярные Определяемые пользователем функции)
  • Табличные пользовательские функции (возврату)
  • Пользовательские процедуры (UDPs)
  • Определяемые пользователем триггеры
  • Типы данных, определенные пользователем
  • Определяемые пользователем статистические функции

Сборки для обновления после установки.NET Framework 3.5

После установки.NET Framework 3.5, необходимо использовать ИЗМЕНИТЬ СБОРКА инструкции для обновления следующих сборок:
  • 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 2005, можно Используйте один из следующих методов для сохранения данных.

Предположим, что следующие сценарии:
  • Создать сборку с именемMyAssembly.dll.
  • В MyAssembly ссылки на сборкиSystem.DirectoryServices.dll сборка.
  • У вас есть определяемого пользователем типа данных, имя которогоMyDateTime.
  • В MyDateTime Использование типов данных MyAssembly.dllсборка.
  • Создайте таблицу, имя которого является MyTable.
  • В таблице MyTable содержит данные MyDateTime DATA тип.

Метод 1: Использование служебной программы bcp.exe

  1. С помощью программы Bcp.exe с –n коммутатор для копирования данные из таблицы MyTable в файл. Например, запуск в командной строке следующую команду:
    bcp MyDatabase.dbo.MyTable out C:\MyFile.bcp -n –SSQLServerName  -T
  2. В SQL Server Management Studio, выполните следующие действия:
    1. Удалите таблицу MyTable.
    2. Удалить MyDateTime Тип данных.
    3. Удалить System.DirectoryServices.dllсборка.
    4. Удалить MyAssembly сборка.
  3. В SQL Server Management Studio, выполните следующие действия:
    1. Регистрация System.DirectoryServices.dllсборка.
    2. Регистрация MyAssembly сборка.
    3. Создание MyDateTime Тип данных.
    4. Создайте новую таблицу, которая имеет ту же структуру таблицы, как в таблице MyTable.
  4. С помощью программы Bcp.exe с –n переключиться на Импортируйте данные из файла в таблицу MyTable. Например, запуск в командной строке следующую команду:
    bcp MyDatabase.dbo.MyTable in C:\MyFile.bcp -n –SSQLServerName  -T

Способ 2: Используйте INSERT … Инструкция SELECT

Предполагается, что MyDateTime Тип данных занимает 9 байт в хранилище.
  1. В SQL Server Management Studio создайте новую таблицу содержит столбец VARBINARY(9) Тип данных с помощью следующих инструкции:
    CREATE TABLE TempTable (c1 VARBINARY(9))
  2. Выполните следующую команду: INSERT … ВЫБЕРИТЕ Инструкция для заполнения Таблица tempTable:
    INSERT INTO TempTable SELECT CAST(c1 as VARBINARY(9)) FROM MyTable
  3. В SQL Server Management Studio, выполните следующие действия:
    1. Удалите таблицу MyTable.
    2. Удалить MyDateTime Тип данных.
    3. Удалить System.DirectoryServices.dllсборка.
    4. Удалить MyAssembly сборка.
  4. В SQL Server Management Studio, выполните следующие действия:
    1. Регистрация System.DirectoryServices.dllсборка.
    2. Регистрация MyAssembly сборка.
    3. Создание MyDateTime Тип данных.
    4. Создайте новую таблицу, которая имеет ту же структуру таблицы, как в таблице MyTable.
  5. Выполните следующую команду: INSERT … ВЫБЕРИТЕ Инструкция для заполнения Таблицу MyTable.
    INSERT INTO MyTable SELECT c1 FROM TempTable
Ссылки
Дополнительные сведения о версии сборки следующий веб-узел Microsoft Developer Network (MSDN): Для Дополнительные сведения об обновлении сборки, посетите следующий веб-узла MSDN веб-узел: Для Дополнительные сведения о том, как удалить сборку, посетите следующий веб-узла MSDN веб-узел: Для Дополнительные сведения о том, как зарегистрировать сборку в базе данных SQL Server 2005 посетите веб-узле MSDN: Для Дополнительные сведения о служебной программы Bcp.exe, посетите веб-узле MSDN:

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 949080 — последний просмотр: 09/17/2011 18:43:00 — редакция: 5.0

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 KbMtru
Отзывы и предложения