概要 TaxonomySessionからTermStoreを取得しようとするコードで本当に奇妙な動作が観察されています。ここでTermStore Countが0
using (SPSite mySite = new SPSite(url))
{
TaxonomySession session = new TaxonomySession(mySite);
// Get all the TermStores associated with the provided site.
TermStoreCollection stores = session.TermStores;
Console.WriteLine(stores.Count);
が問題である:
- 上記のコードは、任意のTermStoresを返さない、私はから次のPowerShellスクリプトを実行する場合は、カウントがゼロ
、すなわち、コードは次のようになります同じコマンドプロンプトで、私はカウントに1 TermStoreを取得します。
$site = new-object Microsoft.SharePoint.SPSite("https://mysite") $session = new-object Microsoft.SharePoint.Taxonomy.TaxonomySession($site) $session.TermStores.Count
私は次のことを試してみました:
- 私の管理されたメタデータアプリケーションプロキシが管理されたメタデータサービスが正しく 設定されているため、管理者のデフォルトのプロキシグループ
- の一部です。
- Managed Metadata Serviceのアクセス許可が正しく構成されている
- The Managedメタデータアプリケーションプールは、システム特権 下で実行するために上記のコードを変更するファームアカウント
- の下で実行されている
奇妙なことは、としてコンパイル時にコードの最初のブロックは、上記のいずれかのTermStore(複数可)を取得していないことです実行可能であり、ファームの資格情報で実行されているコマンドウィンドウから呼び出されます。同じウィンドウで、同等のPowerShellスクリプトの2番目のブロックをコピー&ペーストして実行できます。
また、この問題は本番環境でのみ発生しています。同じ実行ファイルがDEV、TEST、およびPre Prod環境で正常に実行されました。
この段階でお手伝いをさせていただきます。
powershellからtermstoreを呼び出すときに同様の問題が発生しました。私たちは理由を理解していませんが、プログラムtermstore-adminの管理者にHTTPリクエストを送信すると、それを目覚めさせてからデータを取得できます。 –
これは今日、見知らぬ人になってしまった。 EXEコードをPowerShellに移植しましたが、今日は正常に実行されました。 EXEが失敗した理由はまだわかりません。私たちがリリースを終えると、私たちは戻って何らかのさらなる診断を行い、後でスレッドを更新します。 –
ちょっと考えて、64ビットアプリケーションとしてexeを実行していないことがありますか? –