I finally got a 1.5-beta-2 server installed, configured and (most importantly) running properly this weekend.  Very cool.  The client-initiated rebuild no longer forces a double-build; thank you, thank you, thank you!  (Don't forget to set your environment variable for SSDIR, folks, or you'll spin your wheels for a long time trying to figure out why no builds ever complete automatically, even when client-forced builds succeed!)

 

<randomSuggestion>

It might be helpful to have an attribute to specify the VSS path for the <vss database="\\myserver\vss$\" /> element in the config file, like we have for <nant program="c:\Program Files\NAnt\bin\nant.exe" /> element; that would facilitate monitoring multiple VSS databases from the same build server...

</randomSuggestion>

 

However, the project name has become case-sensitive on the command line; it wasn't with 1.4...  Now, /start:test.project != /start:Test.Project.  That might be OK with me if the error returned were comprehensible ("No such project.  Check your spelling and remember that names are case-sensitive.").

 

It looks like the call to ContainsKey(...) on BuildCoordinator.cs:85 is probably the case-sensitivity problem in the BuildCoordinator indexer.  The Hashtable ContainsKey(...) isn't specifically documented in the fine manual to be case-sensitive, but it implements a case-sensitive interface and it is.  There's a good example of build a case-insensitive comparer on MSDN.  (In case your mailer eats HTML email: http://msdn.microsoft.com/library/default.asp?url=""> )

 

What gets returned to the client is this exception (which makes it sound like there's something wrong with the remoting server):

 

Encountered unhandled exception: System.Runtime.Remoting.RemotingException: Serv

er encountered an internal error.  For more information, turn on customErrors in

 the server's .config file.

 

Server stack trace:

 

 

Exception rethrown at [0]:

   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage req

Msg, IMessage retMsg)

   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgDa

ta, Int32 type)

   at Chive.Draco.Remote.IDracoRemote.StartBuild(String moduleName, Boolean forc

eBuild)

   at Chive.Draco.Cli.DracoRemoteClient.DoBuild()

   at Chive.Draco.Cli.Commandline.Main(String[] args)

 

I waded into the source for a few minutes, and there's a TODO on DracoRemote:116, so I assume that this is something that will be addressed.  Just be aware of the customErrors problem à the client won't get proper exception to catch unless the config file for the server permits it.  :)  Remoting is so much fun.

 

Reply via email to