Компилировать аудиторию через API с SharePoint 2010 (не 2007) - PullRequest
0 голосов
/ 16 декабря 2010

Я не могу заставить эту вещь работать.Я считаю, что это в основном связано с первым параметром для ApplicationId.Я не могу понять, какой ID ввести.Я получаю результат возврата 4, что означает плохой идентификатор.Все образцы были за 2007 год и использовали SearchContext и устарели.Кто-нибудь?

 public void CompileAudience(SPServiceContext serviceContext, AudienceManager audienceMgr, string AudienceName)
    {   
        try
        {
            int RunJob = -1;

            CustomMaintenanceTimerJobLogging.LogInfo(CustomMaintenanceTimerJobLogging.CategoryType.AudienceCompile, String.Format("Started compiling the audience '{0}' at {1}", AudienceName, DateTime.Now.ToShortTimeString()));

            SPSecurity.RunWithElevatedPrivileges(delegate()
            {
                // Access the service proxy instance of search application proxy.
                SearchServiceApplicationProxy searchApplicationProxy = serviceContext.GetDefaultProxy(typeof(SearchServiceApplicationProxy)) as SearchServiceApplicationProxy;

                // Service Application Info object to retrieve the application id for the search service.
                SearchServiceApplicationInfo searchApplicationInfo = searchApplicationProxy.GetSearchServiceApplicationInfo();

                string[] args = new string[4];
                args[0] = searchApplicationInfo.SearchServiceApplicationId.ToString();
                args[1] = "1";  // 1=Start compile, 0=Stop
                args[2] = "1";  // 1=Full, 0=Incremental  
                args[3] = AudienceName;

                RunJob = AudienceJob.RunAudienceJob(args);
            });

            CustomMaintenanceTimerJobLogging.LogInfo(CustomMaintenanceTimerJobLogging.CategoryType.AudienceCompile, String.Format("Completed compiling the audience '{0}' at {1} with a Result Code of {2} (0 means no errors)", AudienceName, DateTime.Now.ToShortTimeString(), RunJob));
        }
        catch (Exception ex)
        {
            CustomMaintenanceTimerJobLogging.LogError(CustomMaintenanceTimerJobLogging.CategoryType.AudienceCompile, ex);
        }
    }

1 Ответ

0 голосов
/ 08 марта 2011

Пожалуйста, ознакомьтесь с моим постом в блоге: http://blog.repsaj.nl/?p=258. Это все, что вам нужно, чтобы попасть туда.Идентификатор приложения, который нужно передать, - это не идентификатор службы поиска, а идентификатор профиля пользователя.Требуется некоторое отражение, чтобы найти этот идентификатор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...