Я создал dll, состоящий из класса и статической функции для извлечения вложений из базы данных TFS.Ниже приведена статическая функция
public static List<string> GetAttachments(int workItemId)
{
string tfsReportServerUrl = "http://<<ServerName>>:8080/";
List<String> files = new List<string>();
// THE BELOW IS WHAT I THINK SHOULD BE ASSERTED. I HAVE VERY LIMITED KNOWLEDGE IN CODE ACCESS SECURITY.
//PermissionSet ps = new PermissionSet(PermissionState.None);
//ps.AddPermission(new WebPermission(PermissionState.Unrestricted));
//ps.AddPermission(new WebPermission(NetworkAccess.Accept, tfsReportServerUrl));
//ps.AddPermission(new WebPermission(NetworkAccess.Connect, tfsReportServerUrl));
//ps.AddPermission(new SecurityPermission(SecurityPermissionFlag.UnmanagedCode | SecurityPermissionFlag.Execution));
//ps.Assert();
TeamFoundationServer tfsServer = new TeamFoundationServer(tfsReportServerUrl);
tfsServer.Authenticate();
WorkItemStore workItemStore = new WorkItemStore(tfsServer);
WorkItem workItem = workItemStore.GetWorkItem(workItemId);
if (workItem != null)
{
WebClient request = new WebClient();
request.Credentials = CredentialCache.DefaultCredentials;
foreach (Attachment attachment in workItem.Attachments)
{
files.Add(attachment.Name);
//Save the attachment to a local file
//request.DownloadFile(attachment.Uri, Path.Combine(@"C:\Attachments", attachment.Name));
}
}
return files;
}
Когда я пытаюсь запустить отчет, я получаю «#Error» в отчете.После прочтения нескольких статей я узнал, что эта ошибка вызвана недостаточными разрешениями, и при просмотре отчета в режиме «предварительного просмотра» SSRS отображает «Эта сборка не допускает частично доверенных вызывающих программ».сообщение.
На основе приведенных ниже статей
http://www.devx.com/codemag/Article/33656/1954
http://bryantlikes.com/articles/824.aspx
Я скопировал пользовательскую сборку в расположенные ниже места
C: \ Program Files \ MicrosoftVisual Studio 9.0 \ Common7 \ IDE \ PrivateAssemblies
C: \ Program Files \ Microsoft SQL Server \ MSRS10.MSSQLSERVER \ Службы отчетов \ ReportServer \ местоположения bin.
Также добавлена следующая группа кода в файл rssvrpolicy.config
<CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust">
<IMembershipCondition class="UrlMembershipCondition" version="1" Url="C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer\bin\AdvancedTFS.dll" />
</CodeGroup>
Но я не уверен, какие разрешения мне нужно указать в моей пользовательской функции (показанной выше) или как заставить это работать?
Pls.предложить.
Спасибо