I have a Windows service which has a timer and in the timer_Elapsed event handler a method from another component will be called which is supposed to look into db and read or update some records. The timer Elapsed event is getting fired every 2 minutes.I used nhibernate for data access and all the nhibernate and db related configuration code is done in the component and windows service has a reference to the component.When I run the method from unit test it is working fine which means the configurations and mappings are correct, but from windows service I get this exception:
FluentNHibernate.Cfg.FluentConfigurationException was caught Message="An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.\r\n\r\n" Source="FluentNHibernate" StackTrace: at FluentNHibernate.Cfg.FluentConfiguration.BuildConfiguration() in d: \Builds\FluentNH\src\FluentNHibernate\Cfg\FluentConfiguration.cs:line 121 InnerException: NHibernate.MappingException Message="Could not configure datastore from input stream (XmlDocument)" Source="NHibernate" StackTrace: at NHibernate.Cfg.Configuration.LogAndThrow(Exception exception) at NHibernate.Cfg.Configuration.AddInputStream(Stream xmlInputStream, String name) at NHibernate.Cfg.Configuration.AddDocument(XmlDocument doc, String name) at NHibernate.Cfg.Configuration.AddDocument(XmlDocument doc) at FluentNHibernate.PersistenceModel.Configure(Configuration cfg) in d: \Builds\FluentNH\src\FluentNHibernate\PersistenceModel.cs:line 265 at FluentNHibernate.Cfg.FluentMappingsContainer.Apply(Configuration cfg) in d:\Builds\FluentNH\src\FluentNHibernate\Cfg \FluentMappingsContainer.cs:line 141 at FluentNHibernate.Cfg.MappingConfiguration.Apply(Configuration cfg) in d:\Builds\FluentNH\src\FluentNHibernate\Cfg \MappingConfiguration.cs:line 64 at FluentNHibernate.Cfg.FluentConfiguration.BuildConfiguration() in d: \Builds\FluentNH\src\FluentNHibernate\Cfg\FluentConfiguration.cs:line 112 InnerException: System.TypeInitializationException Message="The type initializer for 'NHibernate.Util.TypeNameParser' threw an exception." Source="NHibernate" TypeName="NHibernate.Util.TypeNameParser" StackTrace: at NHibernate.Util.TypeNameParser.Parse(String type, String defaultNamespace, String defaultAssembly) at NHibernate.Cfg.ClassExtractor.ClassEntry..ctor(String extends, String className, String entityName, String assembly, String namespace) at NHibernate.Cfg.ClassExtractor.GetClassEntries(XmlDocument document) at NHibernate.Cfg.MappingsQueue.AddDocument(NamedXmlDocument document) at NHibernate.Cfg.Configuration.AddDocumentThroughQueue(NamedXmlDocument document) at NHibernate.Cfg.Configuration.AddXmlReader(XmlReader hbmReader, String name) at NHibernate.Cfg.Configuration.AddInputStream(Stream xmlInputStream, String name) InnerException: System.Threading.ThreadAbortException Message="Exception of type 'System.Threading.ThreadAbortException' was thrown." InnerException: Here is the code I have in the service : public InitiatorService() { InitializeComponent(); } protected override void OnStart(string[] args) { timer1.Enabled = true; } protected override void OnStop() { } private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { lock (processLock) { DoWorkComponent component= new DoWorkComponent (); component.DoWorkMethod(); } } In the DoWorkComponent : public void DoWorkMethod() { try { ISession session =GetSession(); ITransaction transaction = session.BeginTransaction(); //code to do actions session.Flush(); transaction.Commit(); session.Close(); } catch (Exception ex) { throw new InvalidOperationException(ex.Message); } } Please let me know if this is a correct practice and how I can fix this problem. The nhibernate version I am using is 2.1.2.4000 and I set CallContext to thread_static. Thanks in Advance, Sacha -- You received this message because you are subscribed to the Google Groups "Fluent NHibernate" group. To post to this group, send email to fluent-nhibern...@googlegroups.com. To unsubscribe from this group, send email to fluent-nhibernate+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/fluent-nhibernate?hl=en.