Hi Jason
Thanks again
I really appreciate all your help.
I have solved my problem but it is not the real one! maybe  I need
more knowledge to understand your comments.
Your comments are advance comment so I need read them more than once
to understand. (typically junior developer!)

If you have some example for your description below I am very thankful
otherwise I am still very thankful for all that time you spent to help
me.

Best Regards
Sheri
P.S. How long does it take to be a capable developer like you?!

On 28 Jan, 15:25, 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
>
> ...
>
> läs mer »

-- 
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