powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Интересное использование SSRS 2008 x64
7 сообщений из 7, страница 1 из 1
Интересное использование SSRS 2008 x64
    #37363268
Young Mockin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Описание исходной задачи: заюзать 32-битную стороннюю библиотеку на Delphi в 64-х битном SSRS 2008 R2.
Раньше, на 32-битной машине, все было реализовано через assembly (со строгим именем, с установкой в GAC), которое подключалось к SSRS, с прописыванием привелегий в rssrvpolicy.config. Данное assembly вызывало 32-битную библиотеку через DLLImport и все работало хорошо.
На 64-битной системе все сломалось, библиотека перестала вызываться с ошибкой "неверный формат". На помощь пришел IIS 6.0, запущенный в 32-битном режиме совместимости. Почему бы не воспользоваться этим режимом? Я сделал веб сервис (32-битный, под 2003 студией), к которому подключил стороннюю dll через тот же DLLImport. Веб сервис вызывался из assembly, которое в свою очередь из GAC было прикручно к SSRS.
Это сработало, но не совсем.
Возникла досадная ошибка:
"Данная сборка запрещает вызывающие стороны с частичным доверием."
возникает эта ошибка в assembly просто при создании объекта со ссылкой на web reference моего веб сервиса.
Я смог ее избежать, просто пока поставив в web.config SSRS полное доверие:
<trust level="Full" originUrl="" />
но хочется все-таки сделать разрешение использования моей сборки через rssrvpolicy.config.
Указание в rssrvpolicy.config конструкции вида
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Name="Test"
Description="">
<ImembershipCondition
class="UrlMembershipCondition"
version="1"
url=" https://mycomputer/mywebservice/mywebservice.asmx"
/>
</CodeGroup>
не помогло. Не помогла аналогичная конструкция и с указанием публичного ключа (я сделал веб сервису строгое имя).
Чего надо этому SSRS в конце то концов? ... )
...
Рейтинг: 0 / 0
Интересное использование SSRS 2008 x64
    #37364165
guestfromrs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
URL к сборке, а не к веб сервису
(см. http://msdn.microsoft.com/en-us/library/ms154658.aspx )
возможно также придется поставить seciruty assert в методе, который вызывается из report server'a (если вызов происходит через expression )
...
Рейтинг: 0 / 0
Интересное использование SSRS 2008 x64
    #37365092
Young Mockin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guestfromrs,

URL к сборке это довольно странно в отношении веб сервиса, т.к. он идеологически может быть вобще где угодно, на каком угодно компьютере.
...
Рейтинг: 0 / 0
Интересное использование SSRS 2008 x64
    #37365104
Young Mockin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Через assert это имеете в виду вот так примерно?
...
Рейтинг: 0 / 0
Интересное использование SSRS 2008 x64
    #37365107
Young Mockin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Случайно отправилось без кода.
Код: plaintext
1.
2.
UrlIdentityPermission url = new UrlIdentityPermission("https://mycomputer/mywebservice/*"
");
url.Assert();
Такой вариант тоже не проходит. Причем тут с web reference тоже есть определенная особенность. При добавлении web reference на веб сервис URL уже указывается, причем в IDE. И мне тут не совсем понятно, этот указываемый URL он учитывается в исполняемом коде веб сервиса или нет. Т.к. в IDE указан адрес не совсем правильный, http а не https (когда SSL еще не стоял он был корректен), но это не мешает ни компиляции не исполнению с правильным URL, который я потом указываю, после создания объекта.
Создание объекта веб сервиса:
WebReferenceName.WebServiceClassName webServiceObject = new WebReferenceName.WebServiceClassName();
правильный URL указываю затем:
webServiceObject .Url = " https://mycomputer/mywebservice/mywebservice.asmx"
Но отваливаюсь по исключению на этапе создания объекта.
...
Рейтинг: 0 / 0
Интересное использование SSRS 2008 x64
    #37366534
LevS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
System.Text.RegularExpressions.Regex urlRegEx = new System.Text.RegularExpressions.Regex(@" https://mycomputer/mywebservice/.*");
System.Net.WebPermission p = new System.Net.WebPermission(NetworkAccess.Connect,urlRegEx);

p.Assert();
...
Рейтинг: 0 / 0
Интересное использование SSRS 2008 x64
    #37366540
LevS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно поставить
[assembly: System.Security.AllowPartiallyTrustedCallers] на всю сборку
а на вызываемый из RS метод поставить
[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Assert, Name = "FullTrust")]

и разумеется дать FullTrust сборке
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Интересное использование SSRS 2008 x64
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]