Доброе утро. В настоящее время у меня возникает проблема с хранимой процедурой CLR, вызывающей сборку, созданную в Visual Basic (VS 2008). На самом высоком уровне сборка выполняет отчет, содержащийся в Cognos8, и перемещает выходные данные в определенный каталог в сети. У меня нет проблем при вызове метода из простого тестового EXE-файла, но когда я пытаюсь выполнить его с помощью хранимой процедуры CLR, я получаю следующее:
Сообщение 6522, уровень 16, состояние 1, процедура ReportRunner, строка 0
Ошибка .NET Framework при выполнении пользовательской подпрограммы или агрегата «ReportRunner»:
System.IO.FileNotFoundException: не удалось загрузить файл или сборку 'cognosdotnetassembly_2_0, версия = 10.1.4707.501, культура = нейтральная, PublicKeyToken = d6e6d7d808b7e5b7' или одна из ее зависимостей. Система не может найти указанный файл.
System.IO.FileNotFoundException:
в System.Reflection.Assembly._nLoad (имя_файла_сборки, кодовая строка строки, сборка доказательствБезопасность, расположение сборкиHint, StackCrawlMark & stackMark, логическое значение throwOnFileNotFound, логическое значение для интроспекции)
в System.Reflection.Assembly.nLoad (имя_файла AssemblyName, кодовая строка String, сборка доказательствSecurity, расположение сборкиHint, StackCrawlMark & stackMark, логическое значение throwOnFileNotFound, логическое значение для интроспекции)
в System.Reflection.Assembly.InternalLoad (AssemblyName assemblyRef, Evolution AssemblySecurity, StackCrawlMark & stackMark, Boolean forIntrospection)
в System.Reflection.Assembly.LoadWithPartialNameInternal (Строковое частичное имя, Свидетельство безопасности, Свидетельство, StackCrawlMark & stackMark)
в System.Reflection.Assembly.LoadWithPartialName (String partalame, Evidence securityEvidence)
в System.Xml.Serialization.TempAssembly.LoadGeneratedAssembly (тип Type, String defaultNamespace, XmlSerializerImplementation & contract)
в System.Xml.Serialization.XmlSerializer.FromMappings (сопоставления XmlMapping [], тип Type)
в System.Web.Services.Protocols.SoapClientType..ctor (Тип тип)
в System.Web.Services.Protocols.SoapHttpClientProtocol..ctor ()
at cognosdotnet_2_0.reportService1..ctor ()
в ReportRunnerv3.ReportRunner.ExecuteReport (Int32 inPLAN_ID, Int32 inContract_Sfx, строка inRptDate_DT, строка inPlanType, строка InInstmentOnlyInd, строка InGst, InG, String InG, InString, InInting, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC, InC. 1025 *
Примечания
• cognosdotnetassembly_2_0 находится в том же каталоге, что и сборка «ReportRunner»
• cognosdotnetassembly_2_0 был каталогизирован с использованием CREATE ASSEMBLY с разрешением set = unsafe
• cognosdotnetassembly_2_0 также установлен в GAC
Ниже приводится сообщение, предоставленное fuslogvw.exe:
* Запись в журнале переплета сборки (8/11/2011 @ 5:57:39 AM) *
Операция не удалась.
Результат привязки: hr = 0x80070002. Система не может найти указанный файл.
Менеджер сборки загружен из: c: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ mscorwks.dll
Запуск под исполняемым файлом c: \ Program Files \ Microsoft SQL Server \ MSSQL10_50.SQLEXPRESS \ MSSQL \ Binn \ sqlservr.exe
--- Подробный журнал ошибок следует.
=== Предварительная привязка информации о состоянии ===
Журнал: Пользователь = NT AUTHORITY \ NETWORK SERVICE
LOG: DisplayName = cognosdotnetassembly_2_0, версия = 10.1.4707.501, культура = нейтральная, PublicKeyToken = d6e6d7d808b7e5b7
(Полностью указано)
LOG: Appbase = file: /// c: / Program Files / Microsoft SQL Server / MSSQL10_50.SQLEXPRESS / MSSQL / Binn /
LOG: Initial PrivatePath = NULL
LOG: динамическая база = NULL
LOG: база кеша = NULL
LOG: AppName = NULL
Вызов сборки: System.Xml, версия = 2.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089.
===
LOG: это связывание начинается в контексте загрузки по умолчанию.
LOG: файл конфигурации приложения не найден.
LOG: Использование файла конфигурации компьютера из c: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ config \ machine.config.
LOG: ссылка после политики: cognosdotnetassembly_2_0, версия = 10.1.4707.501, культура = нейтральная, PublicKeyToken = d6e6d7d808b7e5b7
LOG: Fusion размещен. Проверьте хост об этой сборке.
LOG: Сборка отсутствует в списке загруженных CLR. Запрашиваемый узел сборки магазина.
LOG: попробуйте хранить сборку узла с сборкой cognosdotnetassembly_2_0, версия = 10.1.4707.501, культура = нейтральная, publickeytoken = d6e6d7d808b7e5b7, processorarchitecture = x86.
LOG: попробуйте хранить сборку узла с сборкой cognosdotnetassembly_2_0, версия = 10.1.4707.501, культура = нейтральная, publickeytoken = d6e6d7d808b7e5b7, processorarchitecture = msil.
LOG: попробуйте хранить сборку узла с сборкой cognosdotnetassembly_2_0, версия = 10.1.4707.501, культура = нейтральная, publickeytoken = d6e6d7d808b7e5b7.
WRN: хранилище сборки узла не содержит эту сборку.
ERR: во время проверки перед загрузкой произошла неисправимая ошибка (hr = 0x80070002).
Может ли кто-нибудь рассказать, почему SQL Server не может найти cognosdotnetassembly_2_0?
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.
Спасибо за вашу помощь.
- Крис