SharePoint API を使って次のように、ProfilePropertyManager オフジェクトを取得しようとする際に、例外が発生することがあります。下記例は C# で記述していますが、そのほかに Windows PowerShell を使用する場合にも該当します。
...
using (SPSite site = new SPSite(url)) {
//ランタイムサービスのコンテキストの取得
SPServiceContext context = SPServiceContext.GetContext(site);
try
{
ProfilePropertyManager profilePropManager =
new UserProfileConfigManager(context).ProfilePropertyManager;
...
エラーの内容は次の通りです。
"UserProfileApplicationNotAvailableException_Logging::
UserProfileApplicationProxy.ApplicationProperits ProfilePropertyCache
does not have {GUID}
これは、ユーザー プロファイル サービス アプリケーション上でコードを実行するアカウントに適切な権限が付与されていないことが原因であるようです。たとえば、私の環境では次のようになっています。
[確認手順]
コード実行アカウントは contoso\administrator なのですが、ファームアカウントとサービスアプリケーション用のアカウントの2につのみフル コントロール権限が付与されている状態です。
ここに contoso\administrator アカウントを追加し、フル コントロール権限を付与します。
以上で問題が解決するはずです。
コメント