C# 如何在SharePoint中使用选定的用户配置文件服务
基本上,我是在做一个计时器工作,发送一封从SharePoint用户档案服务获取的生日愿望电子邮件。 但问题是服务器上有多个用户配置文件服务 比如1)。用户配置文件服务1C# 如何在SharePoint中使用选定的用户配置文件服务,c#,asp.net,sharepoint,sharepoint-2010,sharepoint-userprofile,C#,Asp.net,Sharepoint,Sharepoint 2010,Sharepoint Userprofile,基本上,我是在做一个计时器工作,发送一封从SharePoint用户档案服务获取的生日愿望电子邮件。 但问题是服务器上有多个用户配置文件服务 比如1)。用户配置文件服务1 2). 用户配置文件服务2 3). 用户配置文件服务3 4). 用户配置文件服务4 因此,如何使用第二用户配置文件服务 以下是我所做的一些代码: SPServiceContext oServiceContext = SPServiceContext.GetContext(SPServiceApplicationProxy
2). 用户配置文件服务2
3). 用户配置文件服务3
4). 用户配置文件服务4 因此,如何使用第二用户配置文件服务 以下是我所做的一些代码:
SPServiceContext oServiceContext = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, SPSiteSubscriptionIdentifier.Default);
UserProfileManager oProfileManager = new UserProfileManager(oServiceContext);
因此,在这里的SPServiceApplicationProxyGroup.Default中,它将获得第一个用户配置文件
其中我想使用第二个用户配置文件服务。但在默认情况下,当尝试访问其gettingFirst user profile service并对其进行迭代时
因此,如何将其设置为使用第二个用户配置文件服务。我猜您有一个用户配置文件服务实例(UPS),上面有多个用户配置文件服务应用程序(UPA)(而不是多个UPS):
谢谢我会查一查,然后给你回电话。
var userAppName = "userprofile service2";
SPFarm farm = SPFarm.Local;
SPServiceApplication application;
foreach (SPService s in farm.Services)
{
if(s.TypeName.Contains("User Profile Service"))
{
//We found UPS
foreach(SPServiceApplication app in s.Applications)
{
if(app.Name == userAppName)
application = app; //Here is UPA
}
}
}
//Or if you like oneliner (not 100% safe)
var x = farm.Services.First(s => s.TypeName.Contains("User Profile Service"))
.Applications.FirstOrDefault(app => app.Name == userAppName);