Try moving your Application_EndRequest code to a httpmodule and register it before the PerWebRequestLifestyleModule.
On Dec 24, 10:49 am, Corey Coogan <[email protected]> wrote: > I'm using 2.0. > > Here's how I'm registering my stuff with PerWebRequest. I am creating > a DataCOntextProvider object that holds onto a L2S DataContext. That > object is injected into the UoW. > > /// <summary> > /// Register the IUnitOfWorkManager to resolve to > LinqToSqlUnitOfWorkManager per web request > /// </summary> > public void RegisterLinq2SqlUnitOfWorkPerWebRequest() > { > _container.Register(Component.For<IUnitOfWorkManager>() > .LifeStyle.PerWebRequest > .ImplementedBy<LinqToSqlUnitOfWorkManager>()); > } > > /// <summary> > /// Register the IDataContextProvider to resolve to > DataContextProvider per web request > /// </summary> > public void RegisterDataContextProviderPerWebRequest() > { > _container.Register(Component.For<IDataContextProvider>() > .LifeStyle.PerWebRequest > .ImplementedBy<DataContextProvider>()); > } > > Now I am simply trying to pull the UoW from the container via the > CommonServiceLocator (both CSL and Windsor Adapter are 1.0) from the > EndRequest like this: > > protected void Application_EndRequest(object sender, EventArgs e) > { > //ignore unless this is a page (.aspx) or handler (.ashx) > if (!RequestCanHaveContext()) > return; > > //get the IUnitOfWork manager > var uow = > ServiceLocator.Current.GetInstance<IUnitOfWorkManager>(); > > //if we have one, commit changes at the end of the request > if (uow != null) > { > //don't explicitly dispose of uow or we'll get > Disposed exceptions on the context > uow.Commit(); > } > > } > > Thanks for your help, > cc > > On Dec 24, 4:14 am, Krzysztof Ko¼mic <[email protected]> > wrote: > > > > > Can you post a sample solution with reproduction of the problem? > > Which version of Windsor are you using? > > > On 2009-12-24 04:36, Corey Coogan wrote: > > > > Hi Gang, > > > I'm registering some components related to Linq2Sql using > > > PerWebRequest lifestyle. I see them get created, but they get > > > destroyed before my global's Application_EndRequest method gets > > > called. Is that by design? Does anyone know a work around? I want > > > to call commit on my UnitOfWork object to submitchanges() at the end > > > of every request. > > > > Thanks, > > > Corey > > > > -- > > > > 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 > > > athttp://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.
