CruiseControl.net ships with the ability to connect to a CruiseControl.net server using .net remoting. I've been able to connect and achieve all we need - a much more advanced version of the CCtray.
However, a project can be configured to ask for a buildReason, this is fulfilled by subscribing to the ICruiseServer.ForceBuildReceived event, which as an argument takes an object which allows the reason the be returned.
http://www.opensourcejavaphp.net/csharp/cruisecontroldotnet/ICruiseServer.cs.html
this much I have figured by looking at the source code for the server. However subscribing to said event in the client, throws a RemotingException, which says to enable the remote server's customErrors option in its config file.
Has anyone else managed to achieve this? or have I got the process of providing a build reason wrong some how?