Subcriptions fail under TFS 2015 Update 3


I realise this project is probably not monitored, but I thought I would log this for anyone else experiencing the same issue.

Since TFS 2015 Update 3, TFS deployer now fails to start with the following exception:
C:\Program Files (x86)\TFS Deployer>TfsDeployer.exe
TfsDeployer.exe Information: 0 : DeployerService will listen at http://<redacted>:8999/Temporary_Listen_Addresses/TfsDeployer/IDeployerService
NotificationServiceHost: Subscribing to Notification event at address http://<redacted>:8999/Temporary_Listen_Addresses/TfsDeployer/event/BuildStatusCha
Microsoft.TeamFoundation.Framework.Client.TeamFoundationServiceException: Value
cannot be null.
Parameter name: s ---> System.Web.Services.Protocols.SoapException: Value cannot
 be null.
Parameter name: s
   --- End of inner exception stack trace ---
   at Microsoft.TeamFoundation.Client.Channels.TfsHttpClientBase.HandleReply(Tfs
ClientOperation operation, TfsMessage message, Object[]& outputs)
   at Microsoft.TeamFoundation.Framework.Client.EventWebService.SubscribeEvent(S
tring userId, String eventType, String filterExpression, DeliveryPreference pref
   at Microsoft.TeamFoundation.Framework.Client.TeamFoundationEventService.Subsc
ribeEvent(String eventType, String filterExpression, DeliveryPreference preferen
   at Readify.Useful.TeamFoundation.Common.Notification.NotificationServiceHost`
   at Readify.Useful.TeamFoundation.Common.Notification.NotificationServiceHost`
   at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
   at Readify.Useful.TeamFoundation.Common.Listener.TfsEventListener`1.OpenHost(
   at Readify.Useful.TeamFoundation.Common.Listener.TfsEventListener`1.Start()
   at Readify.Useful.TeamFoundation.Common.Listener.TfsListener.Start()
   at TfsDeployer.TfsBuildStatusTrigger.Start()
   at TfsDeployer.TfsDeployerApplication.Start()
   at TfsDeployer.ConsoleEntryPoint.Run()


DanAuger wrote Jul 20, 2016 at 4:27 PM

I think a new redirect behavior was introduced. When I try to hit the url for the collection route I get redirected. Example:

http://myserver:8080/tfs/mycollection redirects to http://myserver:8080/tfs/_home Maybe it always did this, but I'm not sure.

JustinNimmo wrote Aug 9, 2016 at 6:51 PM

I think they modified the API call in TFS. We updated the source code NotificationServicehost.cs

_subscriptionId = _eventService.SubscribeEvent(typeof (TEventType).Name, null, preference);

changed to

_subscriptionId = _eventService.SubscribeEvent(typeof (TEventType).Name, "", preference);

And everything works fine again.

DanAuger wrote Aug 15, 2016 at 4:15 PM

Thanks! This did the trick for us as well. I made the change and just replaced the Readify.Useful.TeamFoundation.Common.dll on our build servers.

Prashanth_11 wrote Sep 11, 2016 at 5:28 PM

Can someone please pass the compiled DLL. It will be great help.

email: Prashanthshiva12@gmail.com

jupaol wrote Oct 3, 2016 at 10:26 PM

This code changed worked for us too.
Thank you