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.


Reply via email to