Hi, I think this sample is a good basic example for wcf facility with windows service...
https://github.com/serdarb/DogmaticWcf (you need to add the installer class) Serdar -- serdarb.com <http://www.serdarb.com> On Tue, May 29, 2012 at 11:36 AM, Berke Sokhan <[email protected]>wrote: > Hello, > > Basically, you need zero configuration in app.config file. > > You can do all WCF-specific configuration with fluent registration API > presented by WCF facility library extension methods to Castle Windsor > container. For samples you can check the unit tests of the project - which > are now integrated with Castle.Windsor repo - instead of outdated blog > posts spreaded all over... > > > WillApplyServiceAwareExtensions test could be sample for you > https://github.com/castleproject/Windsor/blob/master/src/Castle.Facilities.WcfIntegration.Tests/Service/WcfServiceFixture.cs > > > > Also [SetUp] part could ring some bells: > > https://github.com/castleproject/Windsor/blob/master/src/Castle.Facilities.WcfIntegration.Tests/Service/Lifestyle/PerWcfOperationLifestyleTestCase.cs > > > > > 2012/5/29 Mijo Thomas <[email protected]> > >> I’m trying to use Castle WCF integration facility in my WCF project, >> but got lost in the way. Can you please help me out? >> >> So, here is the situation: >> >> I have a WCF Service Library, which is hosted inside a Windows Service >> over TCP. Following is what is in my WCF Service Library: Service >> Impl: >> >> [ServiceContract] >> public interface ICalculatorService >> { >> [OperationContract] >> int Add(int x, int y); >> } >> >> public class CalculatorService : ICalculatorService >> { >> public int Add(int x, int y) >> { >> return x + y; >> } >> } >> Configuration: >> >> <system.serviceModel> >> <services> >> <service name="namespace.CalculatorService"> >> <endpoint address="" binding="netTcpBinding" >> bindingConfiguration="" >> contract="namespace.iCalculatorService"> >> <identity> >> <dns value="localhost" /> >> </identity> >> </endpoint> >> <endpoint address="mex" binding="mexTcpBinding" >> bindingConfiguration="" >> contract="IMetadataExchange" /> >> <host> >> <baseAddresses> >> <add baseAddress="http://localhost:8732/ >> CalculatorService/" /> >> </baseAddresses> >> </host> >> </service> >> </services> >> <behaviors> >> <serviceBehaviors> >> <behavior name=""> >> <serviceMetadata httpGetEnabled="false" /> >> <serviceDebug includeExceptionDetailInFaults="false" /> >> </behavior> >> </serviceBehaviors> >> </behaviors> >> </system.serviceModel> >> >> Container Configuration This is inside WCF project were I register >> everything to castle (I'm not sure where the wcf facility should be >> registered, whether it should be registered from the WCF service or >> from the Windows service which hosts the WCF service). >> >> public class ConfigureContainerCastle >> { >> private readonly IWindsorContainer container; >> >> public ConfigureContainerCastle(IWindsorContainer container) >> { >> this.container = container; >> } >> >> public void Configure() >> { >> // Any component registration. >> >> >> container.Register(Component.For<ICalculatorService>().ImplementedBy<CalculatorService>()); >> //All other component registration. >> } >> } >> Following is what is in my Windows Service: >> >> public class Host<T>:ServiceBase >> { >> private ServiceHost serviceHost = null; >> protected override void OnStart(string[] args) >> { >> if (serviceHost != null) >> { >> serviceHost.Close(); >> } >> >> // How do I call the DefaultServiceHostFactory and >> start the service? >> // Should I call the WCF facility from here or from >> WCF service library? >> // var container = new WindsorContainer(); >> // var configureContainer = new >> DataServicesConfigureContainer(container); >> // var hostFactory = new >> DefaultServiceHostFactory(container.Kernel); >> >> serviceHost = new ServiceHost(typeof (T)); >> serviceHost.Open(); >> } >> >> protected override void OnStop() >> { >> if (serviceHost == null) >> return; >> >> serviceHost.Close(); >> serviceHost = null; >> } >> } >> And my configuration(app.config) for Windows Service is same as my WCF >> service, literally line by line. >> >> Now the question is, how do I wire this all together with WCF >> facility? I have seen lot of examples using http and global.asax, but >> none for windows services. Can you please help? Even an appropriate >> link to it will be helpful. >> >> Thanks, -Mike >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Castle Project Users" group. >> To post to this group, send email to >> [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/castle-project-users?hl=en. >> >> > > > -- > Berke SOKHAN. > > http://twitter.com/berkesokhan > http://blog.berkesokhan.com > http://www.birliktegelistir.com/editors.aspx > > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Users" group. > To post to this group, send email to [email protected] > . > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/castle-project-users?hl=en. > -- You received this message because you are subscribed to the Google Groups "Castle Project Users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/castle-project-users?hl=en.
