0

基本的には、 SharePoint userprofile serviceから取得した birthdayWish メールを送信するタイマー ジョブを作成しています。しかし問題は、サーバー上に複数のユーザー プロファイル サービスがあることです。

1のように)。userprofile service1
2)。userprofile service2
3)。userprofile service3
4)。ユーザープロファイルサービス4

では、2 番目のユーザー プロファイル サービスの使用方法について説明します。

ここに私がしたいくつかのコードがあります:

    SPServiceContext oServiceContext = SPServiceContext.GetContext(SPServiceApplicationProxyGroup.Default, SPSiteSubscriptionIdentifier.Default);

     UserProfileManager oProfileManager = new UserProfileManager(oServiceContext);

したがって、ここSPServiceApplicationProxyGroup.Defaultでは、最初のユーザー プロファイルを取得します。

その中で私は2 番目のユーザー プロファイル サービスを使用したいと考えています。ただし、デフォルトでは、取得する最初のユーザー プロファイル サービスにアクセスし、それを反復しようとするとき。

では、2 番目のユーザー プロファイル サービスを使用するように設定する方法を説明します。

4

1 に答える 1

0

私の推測では、1つのUser Profile Serviceインスタンス(UPS)に複数のUser Profile Serviceアプリケーション(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);
于 2012-06-13T22:40:43.493 に答える