从去年年底,sps(sharepoint portal Server)的用户配置文件搜索功能就失败了,搜索一直在无休止的进行着。可是,却无法更新用户配置文件。我起先怀疑是因为sps上搜索帐户的原因,觉得域管理员设置了更为严密的安全限制导致的。但是,去年底,我接管了域管理员的所有工作,并没有发现有什么的特殊问题。
当sps 升级到sp2时,sps服务器上不停的报告一个错误:
“System.StackOverflowException”在AudienceJob.exe中发生
Audiencejob.exe就是sps中用来搜集“访问群体”的进程,难道这个文件或者相关的文件损坏。
我打开管理界面查看相关访问群体的定义,那个一直在搜集,却一直无法完成的搜集被定义为按照域中的组搜集不同公司的所有员工。我怀疑某个域账户组有问题。我打算删除这个一直无法完成搜集任务的访问群体,执行一下其他的搜集任务试试。
我首先要停掉这个搜集计划,这个地方有个比较有趣的现象。当我第一次单击“停止搜集”链接时,搜集计划并没有立即停止,在页面上多出了一个“开始搜集”的链接(正常情况下,开始搜集和停止搜集两个链接是不会同时出现的),需要再点一次“停止搜集”,搜集计划才能停止。
接下来,我删除了那个一直搜不完的访问群体定义,然后,再启动搜集。这一次,搜集程序很快就完成了,我在进程管理器中清晰的看到Audiencejob.exe的运行。这就证明我的推断没有错,一定是某个组的定义出了问题。
我于是决定为每个组都建立一个访问群体。
问题很快找出来了,当搜集到一个叫OFC的组时,问题就出现了,Audiencejob.exe程序开始报错。我打开这个组一看,马上明白了,原来在OFC的成员下面嵌套了一个OFC自己。这样就形成了一个递归调用。这样还不永无止境的搜集下去才怪呢。
我改正了这个错误,sps中搜集访问群体和用户配置文件的计划都恢复了正常。