0
我似乎無法讓這個東西運行。我相信它主要與ApplicationId的第一個參數有關。我無法弄清楚輸入什麼ID。我得到4的返回結果,這意味着不好的ID。所有的樣本都是2007年的,並且使用了SearchContext並且已被棄用。任何人?通過API與SharePoint 2010編譯觀衆(非2007)
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);
}
}