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.
