Как загрузить документы из библиотеки документов Sharepoint с помощью Workflow Foundation? - PullRequest
2 голосов
/ 10 октября 2011

У меня есть некоторые тесты, безопасность, управление проектами и некоторые другие текстовые документы в системе контроля версий TFS2010 в папке «Документы». Кто-нибудь знает, как получить к ним доступ для загрузки и копирования по локальному пути?

Эти файлы физически не находятся в папке $ / ..., хотя они имеют путь к веб-серверу Sharepoint, например: "http://myServer/sites/MyProyect/Test/Tests_P13_F00120.doc". Я попытался использовать DownloadFiles активность без успеха, потому что ему нужен путь, который начинается с $ /. Любое предложение, пожалуйста?

1 Ответ

1 голос
/ 17 ноября 2011

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

Вместо этого вам необходимо установить соединение со службой Sharepoint Copy вашей TFSкоторый находится на http://<Site>/_vti_bin/Copy.asmx.Мы сделали это, добавив ссылку на сервис в наше решение для сборки.

Затем мы реализовали действие по сборке, которое в основном противоположно тому, что вам нужно: во время сборки TFS оно загружает документы в Sharepoint.* Инстанцирование выглядит следующим образом:

BasicHttpBinding binding = new BasicHttpBinding();
binding.Security.Mode = BasicHttpSecurityMode.TransportCredentialOnly;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm;
binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;
binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName;

EndpointAddress endpointAddress = new EndpointAddress("http://<Site>/_vti_bin/Copy.asmx");

CopySoapClient copyService = new CopySoapClient(binding,endpointAddress);

Этот сервис копирования предоставляет метод GetItem, который вы, вероятно, должны вызывать.

Я не знаю, способен ли этот GetItem поддерживать что-то вроде http://myServer/sites/MyProject/Test/*.doc

...