TFS 2010 と統合されているため、チーム プロジェクト ポータルとして機能する sharepoint server 2010 サイトで実行されている sharepoint webpart があります。webpart はサイトに正常にデプロイされ、表示できます。
TfsConfigurationServer クラスを使用して、TFS に接続し、すべてのプロジェクト コレクションのリストを取得できます。さらに一歩下に行くと、各コレクション内のすべてのチーム プロジェクトのリストを取得できます。コレクションのバージョン管理サーバーに接続しようとすると、問題が発生します。そのプロジェクト コレクションの下にあるフォルダー/ファイルのリストを取得できるように、バージョン管理サーバーに接続したいと考えています。
TfsTeamProjectCollection teamProjectCollection = configurationServer.GetTeamProjectCollection(collectionId);
try
{
VersionControlServer versionControl = (VersionControlServer)teamProjectCollection.GetService(typeof(VersionControlServer));
TeamProject tp = versionControl.GetTeamProject("MyTeamProject");
RecursionType recursion = RecursionType.Full;
ItemSet itemSet = tp.VersionControlServer.GetItems(tp.ToString(), recursion);
Item[] items = itemSet.Items;
foreach (Item item in items)
{
l = new Label();
l.Text = item.ChangesetId.ToString();
this.Controls.Add(l);
}
}
catch (Exception ex)
{
ex.ToString();
}
上記のコードは、Try ブロックの後の最初の行である「versioncontrolserver」行で失敗します。「再認証時にユーザーを変更することは許可されていません」というエラーが表示されます。なぜユーザーを変更しようとしているのですか? ユーザー アカウント (私のもの) は、sharepoint と tfs の両方にアクセスできます。WindowsIdentity 変数を追加し、ブレークポイントを使用してデバッグで実行すると、Web パーツが自分のユーザー アカウントで実行されることを確認できます。versioncontrolserver の行で失敗するので、tfs システムに接続する際に再認証を行っているようです。アカウントを切り替えるとしたら、なぜですか? 使用しようとしているアカウントは何ですか?