OoTB = Out of the box ;-)

Thanks Jason. I should grave in this too. new new new ...
That's why most of developer are men and not women!!! Man does not
need any time for "make up" and they develop instead :-P

/Sheri

On Jan 28, 3:25 pm, Jason Meckley <[email protected]> wrote:
> Ah, ok. I'm not familar with OoTB, but the MS MVC default ctor issue I
> do know about.  The default controller resolution method for MS MVC is
> using a default constructor. But you can override this by implementing
> your own ControllerFactory. There may also be other factory interfaces
> you can replace to resolve Filters, membership, etc. If so you would
> want to override these as well. where the the Factory implementation
> would resolve the objects from the kernel.
>
> I use Monorail which ties in very nicely with Windsor, so i take for
> granted that Filters/Controller/etc are resolved from the Kernel.
> There is a project called MvcContrib which is primarly maintained by
> HeadSpring. If you are not familar with this project I would highly
> recommend it. It picks up with MS MVC stops.
>
> If there isn't a way to change how the membership provider is created.
> you will need to find a hook to inject the dependencies via
> properties. it would look something like
>
> var provider = GetProviderByDefaultCtor.
> provider.Dependency = kernel.Resolve<Dependency>();
> //then return or use the provider.
>
> Not as clean, but it gets the dependencies into the provider.
>
> On Jan 28, 7:48 am, Sheri <[email protected]> wrote:
>
>
>
> > Hope I do not make you angry with my daily questions!!
>
> > I have followed all advices. Everything works fine and SessionScope
> > seems to be worked fine. but I still have "Session Closed!" error. I
> > get this error exactly when the logined page will appear after login!
>
> > The reason that I got through debug is "Membership Provider". this
> > OoTB approach need default constructor, and DI needs another
> > constructor for DI objects, the problem begins here. Membership
> > Provider initialized (default ctor) by ASP .NET MVC oOTB membership
> > approach and when the user will log in Membership provider initializes
> > via DI (ctor with DI objects) again that I guess the older session is
> > no more active.
>
> > tired of these conflicts and lack of my knowledge to solve it :-S
>
> > Any idea?
>
> > Thanks once again and again
> > /Sheri
>
> > On 27 Jan, 16:20, Jason Meckley <[email protected]> wrote:
>
> > > you lost me :) i think I get it, but want to be sure.
> > > 1. you are subclassing asp.net MembershipProvider
> > > 2. your implementation utilizes ISession
> > > 3. your implementation isn't registered in the container and therefore
> > > cannot be resolved automatically
>
> > > I haven't used the MembershipProvider explicitly. The apps I create
> > > are intranet apps on a Windows Domain. We utlize windows
> > > authentication, so I'm haven't had to explicitly control the login
> > > process.
>
> > > can you post the relevant code for the provider (and associated
> > > objects)? We should be able to get this to work.
>
> > > On Jan 27, 9:00 am, Sheri <[email protected]> wrote:
>
> > > > Jason, thanks again for your quick answer!
>
> > > > All of component who injects session are transient.
> > > > The only thing that I can guess is "MembershipProvider" in ASP .NET
> > > > MVC. I cannot register it as a component. and since I user one of my
> > > > services in my costumized provider I should register this one as a
> > > > transient component too but I cannot do.
>
> > > > Is it true? what can I use instead of OoTB "Membership Provider" in
> > > > ASP .NET MVC 1.0?
>
> > > > /Sheri
>
> > > > On 26 Jan, 22:32, Jason Meckley <[email protected]> wrote:> if you 
> > > > are injecting the session into a service, the service must be
> > > > > Transient, also with objects that utilize these service must be
> > > > > transient. here are some examples
>
> > > > > controller > dao > session. all must be transient
> > > > > controller > service
> > > > >               > dao > session. controller and dao must be transient,
> > > > > service can be a singleton, if necessary.
>
> > > > > by default component lifestyles are "undefined" which defaults to
> > > > > singletons.
>
> > > > > On Jan 26, 3:54 pm, Sheri <[email protected]> wrote:
>
> > > > > > ______________________
> > > > > > By the way the error message is (sorry for swedish language in the
> > > > > > message):
>
> > > > > > System.ObjectDisposedException was unhandled by user code
> > > > > >   Message="Session is closed!\r\nObjektnamn: ISession."
> > > > > >   Source="NHibernate"
> > > > > >   ObjectName="ISession"
> > > > > >   StackTrace:
> > > > > >        vid NHibernate.Impl.AbstractSessionImpl.ErrorIfClosed()
> > > > > >        vid
> > > > > > NHibernate.Impl.AbstractSessionImpl.CheckAndUpdateSessionStatus()
> > > > > >        vid NHibernate.Impl.SessionImpl.CreateCriteria(Type
> > > > > > persistentClass, String alias)
> > > > > >        vid
> > > > > > WebMonitorUpdate.Models.NHDataAccessObjects.OnlineSystemDAO.findByUsername
> > > > > > (String username) i C:\Projects\WebMonitorUpdate\WebMonitorUpdate
> > > > > > \Models\NHDataAccessObjects\OnlineSystemDAO.cs:rad 55
> > > > > >        vid
> > > > > > WebMonitorUpdate.SQLServerServices.OnlineSystemService.getCustomerInfoByNam
> > > > > >  e
> > > > > > (String username) i C:\Projects\WebMonitorUpdate\WebMonitorUpdate
> > > > > > \SQLServerServices\OnlineSystemService.cs:rad 33
> > > > > >        vid
> > > > > > WebMonitorUpdate.MembershipServicesImpl.SQLServerMembershipProvider.Validat
> > > > > >  eUser
> > > > > > (String usernameAndSystemId, String password) i C:\Projects
> > > > > > \WebMonitorUpdate\WebMonitorUpdate\MembershipServicesImpl
> > > > > > \SQLServerMembershipProvider.cs:rad 139
> > > > > >        vid
> > > > > > WebMonitorUpdate.MembershipServicesImpl.AccountMembershipService.ValidateUs
> > > > > >  er
> > > > > > (String systemId, String userName, String password) i C:\Projects
> > > > > > \WebMonitorUpdate\WebMonitorUpdate\MembershipServicesImpl
> > > > > > \AccountMembershipService.cs:rad 32
> > > > > >        vid 
> > > > > > WebMonitorUpdate.Validators.AccountValidators.ValidateLogOn
> > > > > > (String systemId, String userName, String password, 
> > > > > > IMembershipService
> > > > > > membershipService, ModelStateDictionary modelState) i C:\Projects
> > > > > > \WebMonitorUpdate\WebMonitorUpdate\Validators\AccountValidators.cs:rad
> > > > > > 50
> > > > > >        vid 
> > > > > > WebMonitorUpdate.Controllers.AccountController.LogOn(String
> > > > > > systemId, String userName, String password, Boolean rememberMe, 
> > > > > > String
> > > > > > returnUrl) i 
> > > > > > C:\Projects\WebMonitorUpdate\WebMonitorUpdate\Controllers
> > > > > > \AccountController.cs:rad 70
> > > > > >        vid lambda_method(ExecutionScope , ControllerBase , Object[] 
> > > > > > )
> > > > > >        vid System.Web.Mvc.ActionMethodDispatcher.Execute
> > > > > > (ControllerBase controller, Object[] parameters)
> > > > > >        vid System.Web.Mvc.ReflectedActionDescriptor.Execute
> > > > > > (ControllerContext controllerContext, IDictionary`2 parameters)
> > > > > >        vid System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod
> > > > > > (ControllerContext controllerContext, ActionDescriptor
> > > > > > actionDescriptor, IDictionary`2 parameters)
> > > > > >        vid
> > > > > > System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassa.<InvokeActionMeth
> > > > > >  odWithFilters>b__7
> > > > > > ()
> > > > > >        vid
> > > > > > System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter
> > > > > > (IActionFilter filter, ActionExecutingContext preContext, Func`1
> > > > > > continuation)
> > > > > >        vid
> > > > > > System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassa.<>c__DisplayClass
> > > > > >  c.<InvokeActionMethodWithFilters>b__9
> > > > > > ()
> > > > > >        vid
> > > > > > System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters
> > > > > > (ControllerContext controllerContext, IList`1 filters,
> > > > > > ActionDescriptor actionDescriptor, IDictionary`2 parameters)
> > > > > >        vid System.Web.Mvc.ControllerActionInvoker.InvokeAction
> > > > > > (ControllerContext controllerContext, String actionName)
> > > > > >        vid System.Web.Mvc.Controller.ExecuteCore()
> > > > > >        vid System.Web.Mvc.ControllerBase.Execute(RequestContext
> > > > > > requestContext)
> > > > > >        vid
> > > > > > System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute
> > > > > > (RequestContext requestContext)
> > > > > >        vid System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase
> > > > > > httpContext)
> > > > > >        vid System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext
> > > > > > httpContext)
> > > > > >        vid
> > > > > > System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest
> > > > > > (HttpContext httpContext)
> > > > > >        vid System.Web.Mvc.MvcHttpHandler.VerifyAndProcessRequest
> > > > > > (IHttpHandler httpHandler, HttpContextBase httpContext)
> > > > > >        vid System.Web.Routing.UrlRoutingHandler.ProcessRequest
> > > > > > (HttpContextBase httpContext)
> > > > > >        vid System.Web.Routing.UrlRoutingHandler.ProcessRequest
> > > > > > (HttpContext httpContext)
> > > > > >        vid
> > > > > > System.Web.Routing.UrlRoutingHandler.System.Web.IHttpHandler.ProcessRequest
> > > > > > (HttpContext context)
> > > > > >        vid WebMonitorUpdate._Default.Page_Load(Object sender,
> > > > > > EventArgs e) i C:\Projects\WebMonitorUpdate\WebMonitorUpdate
> > > > > > \Default.aspx.cs:rad 18
> > > > > >        vid System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr
> > > > > > fp, Object o, Object t, EventArgs e)
> > > > > >        vid System.Web.Util.CalliEventHandlerDelegateProxy.Callback
> > > > > > (Object sender, EventArgs e)
> > > > > >        vid System.Web.UI.Control.OnLoad(EventArgs e)
> > > > > >        vid System.Web.UI.Control.LoadRecursive()
> > > > > >        vid System.Web.UI.Page.ProcessRequestMain(Boolean
> > > > > > includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
> > > > > >   InnerException:
>
> > > > > > ______________________
>
> > > > > > On 26 Jan, 21:41, Sheri <[email protected]> wrote:
>
> > > > > > > Thanks a lot Jason for you help.
> > > > > > > Sorry for my disturbance.
>
> > > > > > > ((just a point to them who would like to use NH 2.1.2.4000 and 
> > > > > > > latest
> > > > > > > Castle versions, NHibernate.ByteCode.Castle...
>
> read more »

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" 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/nhusers?hl=en.

Reply via email to