BrandFox / beavers-encounter

Automatically exported from code.google.com/p/beavers-encounter
0 stars 0 forks source link

Проблеммы с NHibernate #21

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Какие действия (шаги) воспроизводят
проблему?
1. Попытка зарегестрировать пользователя
2. Другие действия, которые должны по идеи 
обращатся к БД
3.

Какой результат должен был быть? Что
произошло на самом деле?

Ожидалась успешная регистрация нового 
пользователя.

На какой версии обнаружена проблема?
Какой тип браузера/операционной системы? IE, 
WinXP

Предоставьте пожалуйста ниже
дополнительную информацию.

Server Error in '/' Application.
--------------------------------------------------------------------------------

An ISessionStorage does not exist with a factory key of 
nhibernate.current_session 
Description: An unhandled exception occurred during the execution of the 
current web request. Please review the stack trace for more information about 
the error and where it originated in the code. 

Exception Details: SharpArch.Core.PreconditionException: An ISessionStorage 
does not exist with a factory key of nhibernate.current_session

Source Error: 

Line 60:         public static void Require(bool assertion, string message) {
Line 61:             if (UseExceptions) {
Line 62:                 if (!assertion) throw new 
PreconditionException(message);
Line 63:             }
Line 64:             else {

Source File: 
C:\MyStuff\Projects\SharpArchitecture\src\SharpArch\SharpArch.Core\DesignByContr
act.cs    Line: 62 

Stack Trace: 

[PreconditionException: An ISessionStorage does not exist with a factory key of 
nhibernate.current_session]
   SharpArch.Core.Check.Require(Boolean assertion, String message) in C:\MyStuff\Projects\SharpArchitecture\src\SharpArch\SharpArch.Core\DesignByContract.cs:62
   SharpArch.Data.NHibernate.NHibernateSession.CurrentFor(String factoryKey) in C:\MyStuff\Projects\SharpArchitecture\src\SharpArch\SharpArch.Data\NHibernate\NHibernateSession.cs:271
   SharpArch.Web.NHibernate.TransactionAttribute.OnActionExecuting(ActionExecutingContext filterContext) in C:\MyStuff\Projects\SharpArchitecture\src\SharpArch\SharpArch.Web\NHibernate\TransactionAttribute.cs:23
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +47
   System.Web.Mvc.<>c__DisplayClassc.<InvokeActionMethodWithFilters>b__9() +19
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +254
   System.Web.Mvc.<>c__DisplayClassc.<InvokeActionMethodWithFilters>b__9() +19
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +192
   System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +399
   System.Web.Mvc.Controller.ExecuteCore() +126
   System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +27
   System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +7
   System.Web.Mvc.MvcHandler.ProcessRequest(HttpContextBase httpContext) +151
   System.Web.Mvc.MvcHandler.ProcessRequest(HttpContext httpContext) +57
   System.Web.Mvc.MvcHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext httpContext) +7
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.3615; ASP.NET 
Version:2.0.50727.3614 

Original issue reported on code.google.com by ablaz...@tuning-box.com.ua on 3 Sep 2010 at 4:07

GoogleCodeExporter commented 9 years ago
Спасибо за развернутый отчет об ошибке!
Но у меня есть еще один вопрос: Вы 
запускаете приложение из VS или под IIS?
И соответственно у Вас какая версия VS и IIS?

Если запускаешь из под VS, то скорее всего 
нужно в файле Global.asax.cs закомментировать 
строку 79.

Original comment by RolleR.m...@gmail.com on 7 Sep 2010 at 8:42

GoogleCodeExporter commented 9 years ago
Огромное спасибо!

Действительно ваш Фикс помог.

Относительно Ваших вопросов:
1. Visual Studio 2008 Team Edition SP1
2. IIS 5.1
3. Пока что запускаю из студии используя VS 
Development Server

При регистрации пользователя столкнулся с 
проблеммой регистрации пользователя, как 
оказалось изза пустой таблицы Roles.

Отредактировав все руками возник вопрос - а 
как это все администрировать? Пользователь 
может создавать игры и комманды ... это 
както неправильно.

Original comment by ablaz...@tuning-box.com.ua on 7 Sep 2010 at 10:27

GoogleCodeExporter commented 9 years ago
1. На счет фикса - это фикс нужен только, если 
приложение работает под управлением VS 
Development Server. Если приложение будет 
развернуто на IIS 7, то этот фикс применять не 
нужно. После перехода на ASP.NET MVC 2 эта 
проблема будет решена. И еще момент: под IIS 
5.1 приложение работать не будет... нужен IIS 7 
либо IIS 6.x, но для IIS 6.x нужно хитрым способом 
настроить веб-приложение (см. 
http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx
http://flux88.com/blog/using-asp-net-mvc-on-iis-6-without-the-mvc-extension/)

2. Да, все правильно - нужно руками заполнить 
таблицу Roles. В следующем релизе скрипта 
создания пустой базы данных таблица Roles 
будет заполняться нужными значениями.

3. На данный момент интерфейс 
администрирования в стадии планирования 
разработки. Если что-то нужно настроить, то 
делается это руками в базе - не идеально 
конечно, но пока только так.

4. Да, в исходных кодах GamesController.cs разрешено 
создавать игры, но перед боевой 
эксплуатацией я обычно запрещаю создавать 
новые игры, вставляя в начало методов 
GamesController.Create(...) следующий код: throw new 
Exception("ФИГВАМ!!!"); ))))

Original comment by RolleR.m...@gmail.com on 7 Sep 2010 at 10:52

GoogleCodeExporter commented 9 years ago
Если роли заполняются руками то как 
настраиваются права доступа? Ну например 
зачем всем пользователям давать 
возможность создавать игру?

Original comment by ablaz...@tuning-box.com.ua on 7 Sep 2010 at 11:14

GoogleCodeExporter commented 9 years ago
Уважаемые разработчики. Я настроил все на 
виндовс 2008 сервер под ИИС7 но у меня все еще 
эта проблемма.

Под Visual Studio Development Server все хорошо.

Original comment by ablaz...@tuning-box.com.ua on 6 Oct 2010 at 8:29

GoogleCodeExporter commented 9 years ago
Попробуйте взять последнюю версию из svn

Original comment by RolleR.m...@gmail.com on 8 Oct 2010 at 10:17