Using Castle Windsor WCF facility with WCF 4 REST service gives 'Could not find a component' error
===

As a long time reader of StackOverflow but not finding the solution to my problem here is my first attempt to ask a question, so don't be too harsh on me :-)

I have the following WCF 4 REST service definitions:

Service contract

    namespace RestService2.Service
    {
        [ServiceContract]
        public interface ISampleService
        {
           [WebGet(UriTemplate = "")]
           List<SampleItem> GetCollection();

           [WebInvoke(UriTemplate = "", Method = "POST")]
           SampleItem Create(SampleItem instance);

           [WebGet(UriTemplate = "?id={id}")]
           SampleItem Get(int id);

           [WebInvoke(UriTemplate = "?id={id}", Method = "PUT")]
           SampleItem Update(int id, SampleItem instance);

           [WebInvoke(UriTemplate = "?id={id}", Method = "DELETE")]
           void Delete(int id);
        }
    }

Service implementation 

    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
    public class SampleService : ISampleService
    {
        private IDatabase db;
        public SampleService(IDatabase db)
        {
            this.db = db;
        }

        public SampleService()
        {
        }
        public List<SampleItem> GetCollection()
        {
            return db.Items.Values.ToList();
        }

        public SampleItem Create(SampleItem instance)
        {
            // Add the new instance of SampleItem to the collection
            db.Items.Add(instance.Id, instance);
            return db.Items[instance.Id];
        }
		
		//..Rest omitted..
    }

Database interface:

    using RestService2.Entities;

    namespace RestService2.Service
    {
       public interface IDatabase
       {
          Dictionary<int, SampleItem> Items { get; }

       }
    }

Database implementation:
    
    public class Database : IDatabase
    {
        private Dictionary<int, SampleItem> items;

        public Database()
        {
        }
        
        public Dictionary<int, SampleItem> Items
        {
            get
            {
                return items;
            }
        }
    }

..and the global.asax file


    namespace RestService2.Web
    {
        public class Global : HttpApplication
        {
            static IWindsorContainer Container {get; set;}
 
            void Application_Start(object sender, EventArgs e)
            {
               BuildContainer();
               RegisterRoutes();
            }

            private void BuildContainer()
            {
               Container = new WindsorContainer();
               Container.AddFacility<WcfFacility>()
                .Register(Component.For<ISampleService>().ImplementedBy<SampleService>().Named("SampleService"))
                .Register(Component.For<IDatabase>().ImplementedBy<Database>());
            
            }
            private void RegisterRoutes()
            {
                RouteTable.Routes.Add(new ServiceRoute("SampleService",
                new DefaultServiceHostFactory(), typeof(SampleService)));
            }
        }
    }

The service contract, service implementation, database interface and database implementation are in assembly A, SampleItem (an entity) is defined in assembly B and the global.asax.cs is in assembly C.

I have added references from assembly A and B to assembly C. 

When I try to access the service help page (or any service method for that matter) I get the following error message: `Could not find a component with type RestService2.Service.SampleService, RestService2.Service, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, did you forget to register it?`

Any idea what could be problem? How should i configure the container correctly?

Regards