2

CheckinEventTFSを使用してTFS2010でサブスクライブしようとしていますIEventService。何らかの理由で私は取得し続けます:

イベントタイプ<<イベントタイプ>>は存在しません

WorkItemChangedEventCheckinEvent。_ 私は何が間違っているのですか?

var serverUri = new Uri("http://TFS_SERVICE:8080/tfs");
var server = TfsConfigurationServerFactory.GetConfigurationServer(serverUri);

var eventService = server.GetService<IEventService>();
var preference = new DeliveryPreference
    {
         Schedule = DeliverySchedule.Immediate,
         Type = DeliveryType.Soap,
          Address = "http://localhost:61773/NotifyService.asmx"
     };

int eventId = eventService.SubscribeEvent("CheckinEvent", null, preference);
4

2 に答える 2

4

構成サーバーレベルでイベントサービスにクエリを実行しています。これらのイベントタイプは、チームプロジェクトコレクションレベルでのみ存在します。これは、実際にイベントサブスクリプションを作成する場所であると思います。コードを次のようなものに変更する必要があります。

var serverUri = new Uri("http://TFS_SERVICE:8080/tfs/collection");

TfsTeamProjectCollection collection = new TfsTeamProjectCollection(serverUri);
var eventService = collection.GetService<IEventService>();

var preference = new DeliveryPreference
{
  Schedule = DeliverySchedule.Immediate,
  Type = DeliveryType.Soap,
  Address = "http://localhost:61773/NotifyService.asmx"
};

int eventId = eventService.SubscribeEvent("CheckinEvent", null, preference);

URIにはコレクション名を含める必要があることに注意してください。

于 2013-03-01T20:28:31.743 に答える
1

を使用する代わりにTfsConfigurationServerFactoryTfsTeamProjectCollectionFactory.GetTeamProjectCollection()メソッドを使用してください。これらのイベントは、サーバーレベルではなく、コレクションレベルで存在します。

于 2013-03-01T20:11:06.343 に答える