Я создал исполняемый файл с использованием C #, который подключается к VSO, получает рабочие элементы и обновляет их.
Вот код, используемый для подключения к VSO и получения проекта:
TfsTeamProjectCollection tfsTeamProjectCollection = null;
NetworkCredential networkCredential = new NetworkCredential(userName, password);
ICredentials credential = (ICredentials)networkCredential;
Uri tfsUri = new Uri(tfsUrl);
TfsConfigurationServer tfai = new TfsConfigurationServer(tfsUri, (ICredentials)credential);
try
{
tfai.EnsureAuthenticated();
}
catch (Exception ex)
{
throw new Exception(string.Format("Auth fail.({0})", ex.Message));
}
Microsoft.TeamFoundation.Framework.Client.ITeamProjectCollectionService tpcService = tfai.GetService<Microsoft.TeamFoundation.Framework.Client.ITeamProjectCollectionService>();
Microsoft.TeamFoundation.Framework.Client.CatalogNode configurationServerNode = tfai.CatalogNode;
System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.TeamFoundation.Framework.Client.CatalogNode> tpcNodes = configurationServerNode.QueryChildren(new Guid[] { Microsoft.TeamFoundation.Framework.Common.CatalogResourceTypes.ProjectCollection }, false, Microsoft.TeamFoundation.Framework.Common.CatalogQueryOptions.None);
foreach (Microsoft.TeamFoundation.Framework.Client.CatalogNode tpcNode in tpcNodes)
{
if (tpcNode.Resource.DisplayName.ToUpper() == "PROJECTNAME")
{
tfsTeamProjectCollection = tfai.GetTeamProjectCollection(new Guid(tpcNode.Resource.Properties["InstanceID"]));
foundProject = true;
break;
}
}
if(foundProject)
{
WorkItemStore workItemStore = (WorkItemStore)tfsTeamProjectCollection.GetService(typeof(WorkItemStore));
}
Код работает нормально.
Даже exe-код того же кода работает нормально при запуске вручную.
Я создал пакет служб SSIS, задача выполнения процесса прекрасно запускается при запуске вручную.
Но когда я развертываю пакет и запускаю его через задание агента SQL, происходит сбой с ошибкой:
Ошибка: при выполнении "name.exe" "" в "". Код завершения процесса был
"-532462766", в то время как ожидаемое было "0".
Я попытался запустить пакет в 32-битной и 64-битной среде. Каждый раз происходит сбой с одной и той же ошибкой.
Все пользователи (SQLSERVERINSTANCE, SQLSERVERAGENT, SERVICEACCOUNT) имеют доступ к исполняемому файлу.
Я что-то упустил? Или мне нужно внести некоторые изменения на стороне сервера, чтобы агент SQL мог подключаться к VSO?
P.S .: Я использую SQL SERVER 2016.