Ошибка пользовательской сборки ReportServer 2005 - PullRequest
1 голос
/ 25 июля 2011

У нас есть сервер отчетов на SQL Server 2005, он ранее работал на компьютере X, который мы заменяем на компьютер Y. На компьютере X в качестве тестовой среды был только один экземпляр SQL по умолчанию, компьютер Y - это новый компьютер с 2 экземпляры sql, Y \ TEST и Y \ DEV. Обе машины работают под управлением Windows Server 2003, и на обоих компьютерах установлен Sql Server 2005 вместе с сервером отчетов

В настоящее время мы не работали над экземпляром DEV, только над экземпляром TEST. Сервер отчетов установлен для ТЕСТА. Ранее SSRS работал так, как предполагалось, на машине X, а на Y \ TEST - для отчетов, не использующих какой-либо пользовательский код. Однако для некоторых отчетов мы загружаем пользовательскую сборку Localization. Эта сборка в настоящее время существует в следующих папках на сервере:

  • C: \ Program Files \ Microsoft Visual Studio 8 \ Common7 \ IDE \ PublicAssemblies
  • C: \ Program Files \ Microsoft Visual Studio 8 \ Common7 \ IDE \ PrivateAssemblies
  • C: \ Program Files \ Microsoft SQL Server \ MSSQL.2 \ Службы отчетов \ ReportServer \ bin

Также в rssrvpolicy.config запись для Report_Expressions_Default_Permissions была изменена с Выполнения на FullTrust (хотя это не было необходимо на компьютере X).

При попытке загрузить файлы rdl через веб-интерфейс мы получаем следующие ошибки:

Ошибка при загрузке модуля кода: ‘Локализация, Версия = 1.0.0.0, Культура = нейтральный, PublicKeyToken = e302ddd55ecd694a’. Подробности: не удалось загрузить файл или сборку 'Локализация, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = e302ddd55ecd694a' или одна из ее зависимостей. Система не может найти указанный файл. (rsErrorLoadingCodeModule) Получить справку

В строке 14 пользовательского кода произошла ошибка: [BC30451] Имя «Локализация» не объявлено. (rsCompilerErrorInCode) Получить справку

Кто-нибудь знает другие места с потенциальными ошибками?

Ответы [ 2 ]

2 голосов
/ 28 сентября 2012

Я искал в интернете, пытаясь решить эту проблему.Я создал примеры проектов точно в соответствии с инструкциями на тоннах веб-сайтов, скопировал мою DLL в указанные папки, но безрезультатно.Все равно получите сообщение об ошибке.

Наконец-то до меня дошло, чтобы я проверил папку Program Files (x86) , и, конечно же, здесь есть тот же путь к папке, что и в Program FilesПапка , на которую все ссылаются.

Вместо:

C: \ Program Files \ Microsoft Visual Studio 8 \ Common7 \ IDE \ PrivateAssemblies

Я скопировал в:

C: \ Program Files (x86) \ Microsoft Visual Studio 8 \ Common7 \ IDE \ PrivateAssemblies

И моя сборка работает.Никто, кроме меня, не использует 64-битную Windows?

1 голос
/ 25 июля 2011

У меня есть три комментария, которые могут помочь (если это с 2008 R2, и я не знаю, будут ли они полностью переводить версии):

1) Я знаю, что мне удалось распознать сборки на сервере отчетов при обращении из GAC. Возможно, добавьте его туда, чтобы убедиться, что он не работает.

2) Убедитесь, что на сервере развертывания имеется не более одного экземпляра служб Reporting Services. Однажды я распространил файл в неправильном мусорном ведре.

3) Я не думаю, что проблема связана с вашим rssrvpolicy.config, потому что это может привести к ошибкам с разрешениями CAS, а не к отсутствующим ошибкам сборки.

Первое, что приходит на ум, это то, что файл находится не в том месте, или файлы отчетов, которые ссылаются на dll, ссылаются на файл с неверным токеном открытого ключа.

Надеюсь, я смог помочь. Дайте мне знать, если вам нужно что-нибудь еще.

Frank

...