我正在尝试将 WorkItemChanged 通知从 TFS 发送到我的 WCF 服务。在我的开发机器上,一切正常,通知几乎立即交付(并由我的程序处理)。
但是现在我想在另一个系统上测试我的软件并使用“新”安装的 TFS 2012,通知没有传递。我调查了一下,发现了以下错误:
elapsed time: 00:00:00.2376893, sql calls: 19, sql connect time: 00:00:00, sql execute time: 00:00:00.1560000, non-sql time: 00:00:00.0816893 (34%), cpu time: 00:00:00.0156001 ( 6.6%), avg connect time: 0.00 ms, avg execute time: 8.2 ms. All methods quick. 0 slowest sql calls: prc_ReadGroupMembership(47 ms) set nocount on
declare @NowUtc as datetime; set @NowUtc=getutcdate()
declare @PersonId as int
declare @rebuildOK as int
declare @PersonN(30 ms) CollectionError: CreateEvent != TransformEvents. CollectionError: CreateEvent != ExpandEvents. CollectionError: AfterReadSubscription != SendNotifications.
There were errors or warnings during notification delivery.
0/0 emails delivered.
0/1 soap notifications delivered.
1 errors.
0 warnings.
-------------------------------
Notification not delivered.
Notification: WorkItemChangedEvent (DeliveryType: Soap; Address: http://localhost:8733/NAMEOFMYSERVICEENDPOINT)
Exception: System.NotSupportedException: Collection is read-only.
at System.Collections.ObjectModel.Collection`1.Clear()
at Microsoft.TeamFoundation.Client.Channels.TfsHttpClientBase.HandleReply(TfsClientOperation operation, TfsMessage message, Object[]& outputs)
at Microsoft.TeamFoundation.Client.Channels.TfsHttpClientBase.Invoke(TfsClientOperation operation, Object[] parameters, Object[]& outputs)
at Microsoft.TeamFoundation.Client.Channels.TfsHttpClientBase.Invoke(TfsClientOperation operation, Object[] parameters)
at Microsoft.TeamFoundation.JobService.Extensions.Core.NotificationJobExtension.SendSoapNotification(TeamFoundationRequestContext requestContext, TeamFoundationNotification notification)
我真的不明白问题到底是什么或它来自哪里。此错误指的是什么“集合”?是我的服务方面的问题还是与错误的配置或 TFS 方面缺少一些管理权限有关?
编辑
差点忘了这个问题;)
显然,这是由通过 BisSubscribe.exe 订阅通知的错误引起的。删除通知并重新订阅后,错误消失了。