Я наконец-то смог разобраться с проблемой.Моим решением в этом случае было использование CAS стиля 3.0 или уровня 1 ( Microsoft Docs ).Я не знаю, является ли это лучшим решением, но это рабочее решение.
Шаг 1. В вашем проекте в верхней части каждого файла .cs обязательно укажите, что вы хотите использовать правило безопасности уровня 1.установить с помощью следующего атрибута:
[assembly: SecurityRules(SecurityRuleSet.Level1)]
Этот атрибут должен идти ниже ваших операторов использования, но выше ключевого слова пространства имен, как в этом примере.
using Microsoft.SharePoint.Client;
[assembly: SecurityRules(SecurityRuleSet.Level1)]
namespace something.something{
...YOUR CODE HERE...
}
Шаг 2: Узнайте, если выиспользование служб отчетов в режиме интеграции с SharePoint или в собственном режиме.
Если вы используете режим интеграции с SharePoint 2016, перейдите в следующее расположение и скопируйте свою DLL в папку.
C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\WebServices\Reporting\bin
Если выв основном режиме, затем перейдите в следующее местоположение и скопируйте его в папку.
C:\Program Files\Microsoft SQL Server
Затем просмотрите каждую нумерованную папку (IE 90,100,130 и т. д.), пока не найдете папку Bin.
Я предлагаю разместить здесь пользовательскую сборку, а не GAC, поскольку легко предоставить полное доверие через веб-конфигурацию служб Reporting Services.
Шаг 3. Наконец, вернитесь на один уровень вверх из папки bin, где вы видите файл web.config для служб отчетов.В службах отчетов найдите следующий тег
<trust level="something" originUrl\""/>
Замените что-то на уровень Full
<trust level="Full" originUrl\""/>
ПРИМЕЧАНИЕ. При этом будут созданы все библиотеки DLL, находящиеся в папке Bin.насколько я могу судить, запустите с полным доверием
Выполните сброс IIS и протестируйте нашу собственную сборку.Вы должны иметь полное доверие и избегать любых ужасных проблем с прозрачным кодом .Net 4.0.
Я не могу гарантировать, что это будет работать для всех.Вся эта установка .Net 4.6 CAS очень сложна и трудна для понимания.Ниже приведен список документов Microsoft, которые помогли мне найти этот ответ.
Критический атрибут System.Security
Проверьте полное доверие к коду