Внешняя сборка SSRS: не удалось загрузить узел хоста выражений - PullRequest
3 голосов
/ 12 августа 2011

При использовании внешней сборки получите это сообщение в отчете SSRS на панели предварительного просмотра.

Не удалось загрузить узел узла выражения.Подробности: Эта сборка не допускает частично доверенных вызывающих абонентов.

Я провел день с этой проблемой (изначально запущенной как #Error)

Первоначальный вызов внешней сборки былхорошо.я получал бы #Error всякий раз, когда эта внешняя сборка вызывала веб-сервис.Поэтому я следовал этим указаниям и добавил код для добавления разрешения на вызов службы с помощью:

var urlRegEx = new Regex(@"http://mydevserver\.com/.*");
var p = new WebPermission(NetworkAccess.Connect,urlRegEx);
p.Assert();

p.Assert выдает исключение безопасности.Итак, последний шаг, который я сделал, - попытаться добавить полное доверие к сборке, которая выполняет приведенный выше код с:

cespol -af myAssembly.dll //after strongly signing it

, который, казалось, добавил к нему полное доверие.но теперь я получаю сообщение выше.

не уверен, что в отчете имеется в виду «узел узла выражений» и / или какая именно сборка здесь является ошибочной.Я также следовал инструкциям в приведенной выше ссылке, чтобы добавить CodeGroups (url) для 2 сборок, на которые ссылается мой отчет, и добавил FullTrust к ним, также используя инструмент настройки Microsoft Framework.

Одна важная вещь, которую следует учитывать, - изначально я мог бы по крайней мере выполнить некоторый простой код в моей сборке, на которую ссылаются ((только вызов веб-службы вызовет #Error).Но теперь, после добавления этого полного доверия, я больше не могу этого делать и продолжаю получать ошибку выше.

, если я удаляю полное доверие из ссылочной сборки (используя утилиту castol) и пытаюсь вызвать вызов p.Assert() в нем я получаю следующую ошибку:

SecurityException: запрос на разрешение типа SecurityPermission не выполнен.

ОБНОВЛЕНИЕ

Подписание сборки, является причиной основной ошибки в этом сообщении (Не удалось загрузить сборку узла выражения)

1 Ответ

3 голосов
/ 12 августа 2011

один из способов обойти эту ошибку

есть атрибут , позволяющий частично доверенным абонентам.

[assembly:AllowPartiallyTrustedCallers]

Это по-прежнему не решает мою большую проблему, но ошибка в этой теме исчезает ... нужно провести дополнительное исследование. все еще не уверен, какой "вызывающий" является частично доверенным, так как моя внешняя сборка имеет полное доверие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...