मैं .NET 3.5, NHibernate के तहत एक एएसपी.नेट एमवीसी वेब ऐप विकसित कर रहा हूं और विंडोज़ एज़ूर पर होस्ट किया गया हूं। जब, वेबपैप स्थानीय विकास कपड़े से चलाया जाता है तो यह ठीक काम करता है। फिर भी, जब मैं इसे विंडोज एज़ूर में ले जाता हूं, तो एमवीसी वेब भूमिका से किए गए प्रत्येक सम्मिलन नीचे सूचीबद्ध अपवाद के साथ समाप्त होता है।अपवाद के बाद सत्र को फ्लश न करें - NHibernate
कोई विचार मेरे एनएचबीर्नेट तर्क के साथ क्या गलत है? (सत्र प्रबंधन हो सकता है, यकीन नहीं)
[AssertionFailure: Lokad.Translate.Entities.User प्रविष्टि में अशक्त आईडी (सत्र फ्लश नहीं है एक अपवाद तब होता है के बाद)] NHibernate.Event.Default। DefaultFlushEntityEventListener.CheckId (वस्तु obj, IEntityPersister persister, वस्तु आईडी, entityMode entityMode) 292 NHibernate.Event.Default.DefaultFlushEntityEventListener.GetValues (वस्तु इकाई, EntityEntry प्रविष्टि, entityMode entityMode, बूलियन mightBeDirty, ISessionImplementor सत्र) +93 NHibernate.Event .Default.DefaultFlushEntityEventListener.OnFlushEntity (FlushEntityEvent ईवेंट) +158 NHibernate.Event.Default.AbstractFlushingEventListener.FlushEntities (FlushEvent ईवेंट) +469 NHibernate.Event.Default.AbstractFlushingEventListener.FlushEverythingToExecutions (FlushEvent घटना) 339 NHibernate.Event.Default.DefaultFlushEventListener.OnFlush (FlushEvent घटना) 85 NHibernate.Impl.SessionImpl.Flush() 275 NHibernate.Transaction.AdoTransaction .Commit() +236 Lokad.Translate.Repositories.PageRepository.Create (पृष्ठ पेज) Lokad.Translate.Controllers.PagesController.Create (पृष्ठ पेज) lambda_method (ExecutionScope, ControllerBase, वस्तु []) +69 प्रणाली। Web.Mvc.ReflectedActionDescriptor.Execute (ControllerContext नियंत्रक कॉन्टेक्स्ट, IDictionary
2 parameters) +251 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary
2 पैरामीटर) +31 System.Web.Mvc। <> c__DisplayClassa.b__7() +88 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter (IActionFilter फिल्टर, ActionExecutingContext preContext, समारोह1 continuation) +534 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList
1 फिल्टर, ActionDescriptor actionDescriptor, IDictionary`2 पैरामीटर) 312 System.Web.Mvc.ControllerActionInvoker। InvokeAction (ControllerContext controllerContext, स्ट्रिंग actionName) 856 System.Web.Mvc.Controller.ExecuteCore() 185 System.Web.Mvc.MvcHandler.ProcessRequest (HttpContextBase HttpContext) +221 System.Web.CallHandlerExecutionStep.System.Web .HttpAplication.IExecutionStep.Execute() +586 सिस्टम.Web.HttpAplication.ExecuteStep (IExecutionStep चरण, बूलियन & पूर्ण सिंक्रनाइज़) +177
ध्यान दें कि मैं _session.FlushMode = FlushMode.Commit;
उपयोग कर रहा हूँ और उस User
एक कस्टम RoleProvider
public class SimpleRoleProvider : RoleProvider
{
readonly UserRepository Users = new UserRepository();
public override string[] GetRolesForUser(string username)
{
try
{
var user = Users.Get(username);
// no role if user is not registered
if (null == user) return new string[0];
// default role for registered user
return user.IsManager ? new[] { "Manager", "User" } : new[] { "User" };
}
catch (Exception)
{
// role should not fail in case of DB issue.
return new string[0];
}
}
}
हाय स्टीफन, बहुत बहुत शुक्रिया। मुझे अंततः एक समाधान मिला है। समस्या आपके स्पष्टीकरण से असंबंधित थी, लेकिन फिर भी यह अभी भी एक महान बिंदु है। –
इतने विस्तृत स्पष्टीकरण के लिए आपको बहुत बहुत धन्यवाद, मुझे एक ही त्रुटि थी और यह NHibernate अपवाद को निगलने के कारण हुआ था। मैंने आपकी पोस्ट पढ़कर बहुत समय बचाया। – Vladimirs