eXpandFramework / eXpand

DevExpress XAF (eXpressApp) extension framework. ๐—น๐—ถ๐—ป๐—ธ๐—ฒ๐—ฑ๐—ถ๐—ป.๐—ฒ๐˜…๐—ฝ๐—ฎ๐—ป๐—ฑ๐—ณ๐—ฟ๐—ฎ๐—บ๐—ฒ๐˜„๐—ผ๐—ฟ๐—ธ.๐—ฐ๐—ผ๐—บ, ๐˜†๐—ผ๐˜‚๐˜๐˜‚๐—ฏ๐—ฒ.๐—ฒ๐˜…๐—ฝ๐—ฎ๐—ป๐—ฑ๐—ณ๐—ฟ๐—ฎ๐—บ๐—ฒ๐˜„๐—ผ๐—ฟ๐—ธ.๐—ฐ๐—ผ๐—บ and ๐˜๐˜„๐—ถ๐˜๐˜๐—ฒ๐—ฟ @๐—ฒ๐˜…๐—ฝ๐—ฎ๐—ป๐—ฑ๐—ณ๐—ฟ๐—ฎ๐—บ๐—ฒ๐˜„๐—ผ๐—ฟ๐—ธ and or simply ๐—ฆ๐˜๐—ฎ๐—ฟ/๐˜„๐—ฎ๐˜๐—ฐ๐—ต this repository and get notified from ๐—š๐—ถ๐˜๐—›๐˜‚๐—ฏ
http://expand.expandframework.com
Microsoft Public License
220 stars 114 forks source link

Need help debugging this issue #674

Closed vimarx closed 4 years ago

vimarx commented 4 years ago

When trying to edit web model in win app , now in 19.2.601.1, it fails to open with this exception. Why the web app is working anyway and this is failing to load in model editor?

thanks

3.02.20 16:51:48.231 no context SetupModules 13.02.20 16:51:48.957 no context Customize TypesInfo 13.02.20 16:51:49.160 no context <- ApplicationModulesManager.Load 13.02.20 16:51:49.160 no context TypesInfo: 1066 types, 11739 members 13.02.20 16:51:51.197 no context ================================================================================ The error occurred:

Type:       AggregateException
Message:    One or more errors occurred.
Data:       0 entries
Stack trace:

at Xpand.Utils.Helpers.Retry.Do[T](Func1 action, TimeSpan retryInterval, Int32 retryCount) at Xpand.Utils.Helpers.Retry.Do(Action action, TimeSpan retryInterval, Int32 retryCount) at Xpand.Persistent.Base.ModelDifference.ModelLoader.GetMasterModel(Boolean tryToUseCurrentTypesInfo, Action1 action) at Xpand.ExpressApp.ModelDifference.Win.PropertyEditors.ModelEditorPropertyEditor.GetMasterModelCore(Boolean recreate) at Xpand.ExpressApp.ModelDifference.Win.PropertyEditors.ModelEditorPropertyEditor.GetMasterModel(Boolean recreate) at Xpand.ExpressApp.ModelDifference.Win.PropertyEditors.ModelEditorPropertyEditor.OnCurrentObjectChanged() at DevExpress.ExpressApp.Editors.ViewItem.set_CurrentObject(Object value) at DevExpress.ExpressApp.ObjectView.InitializeItem(ViewItem item) at DevExpress.ExpressApp.CompositeView.AddItem(ViewItem item) at DevExpress.ExpressApp.CompositeView.LoadModelCore() at DevExpress.ExpressApp.View.LoadModel() at DevExpress.ExpressApp.View.SetModel(IModelView model) at Xpand.ExpressApp.ViewFactory.CreateDetailView(XafApplication xafApplication, String viewId, IObjectSpace objectSpace, Object obj, Boolean isRoot, Boolean enableDelayedObjectLoading) at Xpand.ExpressApp.SystemModule.XpandSystemModule.ApplicationOnDetailViewCreating(Object sender, DetailViewCreatingEventArgs args) at System.EventHandler`1.Invoke(Object sender, TEventArgs e) at DevExpress.ExpressApp.XafApplication.OnDetailViewCreating(DetailViewCreatingEventArgs args) at DevExpress.ExpressApp.XafApplication.CreateDetailView(IObjectSpace objectSpace, String detailViewID, Boolean isRoot, Object obj, Boolean isDelayedObjectLoading, IEnumerable objectsToPrefetch) at DevExpress.ExpressApp.XafApplication.CreateDetailView(IObjectSpace objectSpace, String detailViewID, Boolean isRoot, Object obj) at DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController.ShowObjectCore(Object obj, ShowViewParameters showViewParameters, XafApplication application, View sourceView, IObjectSpace objectSpace, IEnumerable objectsToPrefetch) at DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController.ProcessCurrentObject(SimpleActionExecuteEventArgs e) at DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController.processCurrentObjectAction_OnExecute(Object sender, SimpleActionExecuteEventArgs e) at DevExpress.ExpressApp.Actions.ActionBase.ExecuteCore(Delegate handler, ActionBaseEventArgs eventArgs)

InnerException:

        Type:       CannotCreateModelNodeByTypeException
        Message:    Cannot create model node by type 'DevExpress.ExpressApp.ReportsV2.Web.IModelReportDesignerViewItem'. The interface DevExpress.ExpressApp.ReportsV2.Web.IModelReportDesignerViewItem is not a model interface.
        Data:       0 entries
        Stack trace:

at DevExpress.ExpressApp.Model.Core.ModelNode.AddNodeCore(String id, Type type) at DevExpress.ExpressApp.Model.Core.ModelNode.AddNode[NodeType](String id) at DevExpress.ExpressApp.ReportsV2.Web.ReportsAspNetModuleV2.AddReportDesignerViewItem(IModelDetailView modelView) at DevExpress.ExpressApp.ReportsV2.Web.ReportsAspNetModuleV2.AddReportDesignerModelView(ModelNode node) at DevExpress.ExpressApp.Model.ModelNodesGeneratorBase.RunUpdaters(ModelNode node, Boolean enableModelCache) at DevExpress.ExpressApp.Model.Core.ModelNode.RunNodesGenerator(ModelNodesGeneratorBase generator) at DevExpress.ExpressApp.Model.Core.ModelNode.RunNodesGenerator() at DevExpress.ExpressApp.Model.Core.ModelNode.EnsureNodes(Boolean alwaysCreate) at DevExpress.ExpressApp.Model.Core.ModelNode.CreateMasterNodesCore() at DevExpress.ExpressApp.Model.Core.ModelNode.CreateMasterNodes() at DevExpress.ExpressApp.Model.Core.ModelNode.GetNode(String id, Boolean inThisLayer) at DevExpress.ExpressApp.Model.Core.ModelNode.GetNode(String id, Boolean inThisLayer) at DevExpress.ExpressApp.Model.Core.ModelValuePersistentPathCalculator.Calculate(ModelNode originalNode, String propertyName, Boolean runDefaultCalculator, Boolean inThisLayer) at DevExpress.ExpressApp.Model.Core.ModelNode.CreateModelValueByPathCalculator(ModelValuePersistentPathCalculator pathCalculator, String name, Int32 aspectIndex) at DevExpress.ExpressApp.Model.Core.ModelNode.GetModelValueInThisLayer(String name) at DevExpress.ExpressApp.Model.Core.ModelNode.GetValue(String name, Boolean inThisLayer, Int32 aspectIndex) at DevExpress.ExpressApp.Model.Core.ModelNode.CheckPersistentValues() at DevExpress.ExpressApp.Model.Core.ModelNode.IsValid(IModelApplication application) at DevExpress.ExpressApp.Model.Core.ModelNode.ValidateMasterNodesCore(Boolean validateNotLoaded) at DevExpress.ExpressApp.Model.Core.ModelNode.CreateMasterNodesCore() at DevExpress.ExpressApp.Model.Core.ModelNode.CreateMasterNodes() at DevExpress.ExpressApp.Model.Core.ModelNode.GetSortedNodes(Boolean inThisLayer) at DevExpress.ExpressApp.Model.Core.ModelNode.GetSortedNodes(Boolean inThisLayer) at DevExpress.ExpressApp.Model.Core.ModelNodeList1.GetEnumerator() at DevExpress.ExpressApp.ApplicationModelManager.AddCustomMembersFromModelToTypeInfo(IModelApplication model) at DevExpress.ExpressApp.ApplicationModelManager.AddCustomMembersToTypeInfo(IModelApplication model) at DevExpress.ExpressApp.ApplicationModelManager.Setup(ITypesInfo typesInfo, IEnumerable1 boModelTypes, IEnumerable1 modules, IEnumerable1 controllers, IEnumerable1 applicationLocalizerTypes, IEnumerable1 applicationAspects, ModelStoreBase applicationModelDifferenceStore, String modelAssemblyFile) at DevExpress.ExpressApp.Model.Core.ModelApplicationHelper.CreateModel(ITypesInfo typesInfo, IEnumerable1 boModelTypes, IEnumerable1 modules, ControllersManager controllersManager, IEnumerable1 localizerTypes, IEnumerable1 aspects, String modelAssemblyFile, ModelStoreBase modelDifferenceStore) at Xpand.Persistent.Base.ModelDifference.ModelBuilder.BuildModel(XafApplication application, String configFileName, XpandApplicationModulesManager applicationModulesManager) at Xpand.Persistent.Base.ModelDifference.ModelLoader.GetMasterModelCore(Boolean rebuild) at Xpand.Persistent.Base.ModelDifference.ModelLoader.GetMasterModel(XafApplication xafApplication, Action1 action) at Xpand.Persistent.Base.ModelDifference.ModelLoader.<>c__DisplayClass12_0.<GetMasterModel>b__0() at Xpand.Utils.Helpers.Retry.<>c__DisplayClass0_0.<Do>b__0() at Xpand.Utils.Helpers.Retry.Do[T](Func1 action, TimeSpan retryInterval, Int32 retryCount) InnerException is null

expand commented 4 years ago

We will try to answer all questions that do not require research within 24hr. To prioritize cases that require research we use the following labels in order. For all other issues the posting time is respected.

  1. โค Bronze Sponsor
    1. โค Sponsor
    2. โค Backer
    3. Installation
    4. ShowStopper
    5. Nuget
    6. Contribution
    7. BreakingChange
    8. ReproSample
    9. Deployment
    10. must-have

This case is prioritized.

apobekiaris commented 4 years ago

do u have ReportsV2 agnostic to your RequiredModuleTypes in your agnostic module? do u also have ReportsV2.Win to your WInModule?

or do u have a sample?

vimarx commented 4 years ago

I couldn't build a repro sample yet, but I already have Reportsv2 added to my main agnostic module and in reportsv2.win in win module. The missing interface is in the web module as far as I know. do i have to reference it in my win module ??? :(

apobekiaris commented 4 years ago

u shouldn't but cannot guess more unfortunately

vimarx commented 4 years ago

How Xpand collect modules dependencies?

it is correct for Xpand to generate ModelMapperAssemblyweb in GAC path? from my log ... 16.02.20 11:34:59.288 no context Assembly "ModelMapperAssemblyWeb, Version=2.201.2.0, Culture=neutral, PublicKeyToken=null" was resolved by ReflectionHelper from C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Xpand.XAF.Modules.ModelMapper\v4.0_2.201.2.0__c52ffed5d5ff0958\ModelMapperAssemblyWeb.dll

apobekiaris commented 4 years ago

is this assembly in your bin?

vimarx commented 4 years ago

no, only modelassembly and modelmapperadapterwin.dll are in my deployed/testing bin all xpand dll are there andalso in the GAC

apobekiaris commented 4 years ago

u should have the mapperassembly.web in the bin if u want to open the web model. It probably tries to locate it then it fallbacks to the modelmapper path which is the GAC

vimarx commented 4 years ago

ahh ok, but I do not have this assembly generated when running it in vs it in the web/bin path

How is the assembly path chosen?

apobekiaris commented 4 years ago

the assembly should be in the bin of your web app is generated once the app starts

apobekiaris commented 4 years ago

it may be in the GAC by mistake or in the ASP.NET temp folder search your system for it

vimarx commented 4 years ago

also when debugging it in VS?

apobekiaris commented 4 years ago

the app won't start wihout it should be in your system

apobekiaris commented 4 years ago

i am not sure as u use the GAC for the exact location but should be in one of the mentioned locations

vimarx commented 4 years ago

in my case,ModelMapperAssemblyWeb was generated in Web path, not in web/bin path

apobekiaris commented 4 years ago

hmmm then this may relate to it #673, i am not sure have to research it further

vimarx commented 4 years ago

also, after copying it to win for editing model, now (there is no modeladapterweb.dll in GAC..)

InnerException:

        Type:       Exception
        Message:    error CS1567: Error al generar el recurso Win32: Acceso denegado. 

warning CS1610: No se puede eliminar el archivo temporal 'c:\Windows\Microsoft.NET\assembly\GAC_MSIL\Xpand.XAF.Modules.ModelMapper\v4.0_2.201.2.0__c52ffed5d5ff0958\CSCD71EFD80BB4C44D1B5FEF2F950BEFC96.TMP' usado para el recurso Win32 predeterminado -- El sistema no puede encontrar el archivo especificado. Data: 0 entries Stack trace:

en Xpand.XAF.Modules.ModelMapper.Services.TypeMapping.TypeMappingService.Compile(IEnumerable1 references, String code) en Xpand.XAF.Modules.ModelMapper.Services.TypeMapping.TypeMappingService.<>c.<Init>b__99_12(ValueTuple2 tuple) en System.Reactive.Linq.ObservableImpl.SelectMany2.ObservableSelector._.OnNext(TSource value) --- Fin del seguimiento de la pila de la ubicaciรณn anterior donde se produjo la excepciรณn --- en System.Reactive.PlatformServices.ExceptionServicesImpl.Rethrow(Exception exception) en System.Reactive.Stubs.<>c.<.cctor>b__2_1(Exception ex) en System.Reactive.AnonymousSafeObserver1.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.HalfSerializer.ForwardOnError[T](ISink1 sink, Exception ex, Int32& wip, Exception& error) en System.Reactive.Linq.ObservableImpl.TakeUntil2._.OnError(Exception ex) en System.Reactive.Linq.ObservableImpl.Merge1.Observables..InnerObserver.OnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Linq.ObservableImpl.Switch`1..InnerObserver.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Linq.ObservableImpl.SelectMany2.ObservableSelector..InnerObserver.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Subjects.FastImmediateObserver1.EnsureActive(Int32 count) en System.Reactive.Subjects.FastImmediateObserver1.EnsureActive() en System.Reactive.Subjects.ReplaySubject1.ReplayBase.OnError(Exception error) en System.Reactive.Subjects.ReplaySubject1.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Linq.ObservableImpl.SelectMany2.ObservableSelector..InnerObserver.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.AutoDetachObserver1.OnErrorCore(Exception exception) en System.Reactive.ObserverBase1.OnError(Exception error) en Xpand.Extensions.Reactive.Utility.Utility.<>cDisplayClass8_11.<Trace>b__3(Exception e) en System.Reactive.AnonymousSafeObserver1.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Linq.ObservableImpl.Switch1..InnerObserver.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Subjects.FastImmediateObserver1.EnsureActive(Int32 count) en System.Reactive.Subjects.FastImmediateObserver1.EnsureActive() en System.Reactive.Subjects.ReplaySubject1.ReplayBase.OnError(Exception error) en System.Reactive.Subjects.ReplaySubject1.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Subjects.Subject1.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Linq.ObservableImpl.Switch`1..InnerObserver.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Linq.ObservableImpl.SelectMany2.ObservableSelector._.OnNext(TSource value) en System.Reactive.AutoDetachObserver1.OnNextCore(T value) en System.Reactive.ObserverBase1.OnNext(T value) en Xpand.Extensions.Reactive.Utility.Utility.<>cDisplayClass8_11.<Trace>b__2(TSource v) en System.Reactive.AnonymousSafeObserver1.OnNext(T value) en System.Reactive.Sink1.ForwardOnNext(TTarget value) en System.Reactive.Linq.ObservableImpl.Aggregate1..OnCompleted() en System.Reactive.Sink1.ForwardOnCompleted() en System.Reactive.TailRecursiveSink1.Done() en System.Reactive.TailRecursiveSink1.Drain() en System.Reactive.ConcatSink1.OnCompleted() en System.Reactive.Sink1.ForwardOnCompleted() en System.Reactive.Sink2.OnCompleted() en System.Reactive.Sink1.ForwardOnCompleted() en System.Reactive.Linq.ObservableImpl.ToObservableRecursive1..LoopRec(IScheduler scheduler) en System.Reactive.Linq.ObservableImpl.ToObservableRecursive1._.<>c.<LoopRec>b__5_0(IScheduler innerScheduler, _ this) en System.Reactive.Concurrency.ScheduledItem2.InvokeCore() en System.Reactive.Concurrency.CurrentThreadScheduler.Trampoline.Run(SchedulerQueue1 queue) en System.Reactive.Concurrency.CurrentThreadScheduler.Schedule[TState](TState state, TimeSpan dueTime, Func3 action) en System.Reactive.Concurrency.LocalScheduler.Schedule[TState](TState state, Func3 action) en System.Reactive.Concurrency.Scheduler.ScheduleAction[TState](IScheduler scheduler, TState state, Action1 action) en System.Reactive.Producer2.SubscribeRaw(IObserver1 observer, Boolean enableSafeguard) en System.ObservableExtensions.SubscribeSafe[T](IObservable1 source, IObserver1 observer) en System.Reactive.Linq.ObservableImpl.Switch1._.OnNext(IObservable1 value) en System.Reactive.Sink1.ForwardOnNext(TTarget value) en System.Reactive.Linq.ObservableImpl.Select2.Selector..OnNext(TSource value) en System.Reactive.Sink1.ForwardOnNext(TTarget value) en System.Reactive.Linq.ObservableImpl.Select2.Selector..OnNext(TSource value) en System.Reactive.Sink1.ForwardOnNext(TTarget value) en System.Reactive.Linq.ObservableImpl.FirstAsync1.Sequence..OnNext(TSource value) en System.Reactive.Sink1.ForwardOnNext(TTarget value) en System.Reactive.Linq.ObservableImpl.Switch1..InnerObserver.OnNext(TSource value) en System.Reactive.Subjects.Subject1.OnNext(T value) en Xpand.XAF.Modules.Reactive.ReactiveModule.ExtendModelInterfaces(ModelInterfaceExtenders extenders) en DevExpress.ExpressApp.ApplicationModelManager.CreateModelApplicationCreatorProperties(IEnumerable1 modules, IEnumerable1 controllers, String assemblyFileAbsolutePath) en DevExpress.ExpressApp.ApplicationModelManager.Setup(ITypesInfo typesInfo, IEnumerable1 boModelTypes, IEnumerable1 modules, IEnumerable1 controllers, IEnumerable1 applicationLocalizerTypes, IEnumerable1 applicationAspects, ModelStoreBase applicationModelDifferenceStore, String modelAssemblyFile) en DevExpress.ExpressApp.Model.Core.ModelApplicationHelper.CreateModel(ITypesInfo typesInfo, IEnumerable1 boModelTypes, IEnumerable1 modules, ControllersManager controllersManager, IEnumerable1 localizerTypes, IEnumerable1 aspects, String modelAssemblyFile, ModelStoreBase modelDifferenceStore) en Xpand.Persistent.Base.ModelDifference.ModelBuilder.BuildModel(XafApplication application, String configFileName, XpandApplicationModulesManager applicationModulesManager) en Xpand.Persistent.Base.ModelDifference.ModelBuilder.Build(Boolean rebuild) en Xpand.Persistent.Base.ModelDifference.ModelLoader.GetMasterModelCore(Boolean rebuild) en Xpand.Persistent.Base.ModelDifference.ModelLoader.GetMasterModel(XafApplication xafApplication, Action1 action) en Xpand.Persistent.Base.ModelDifference.ModelLoader.<>c__DisplayClass12_0.<GetMasterModel>b__0() en Xpand.Utils.Helpers.Retry.<>c__DisplayClass0_0.<Do>b__0() en Xpand.Utils.Helpers.Retry.Do[T](Func1 action, TimeSpan retryInterval, Int32 retryCount) --- Fin del seguimiento de la pila de la ubicaciรณn anterior donde se produjo la excepciรณn --- en System.Reactive.PlatformServices.ExceptionServicesImpl.Rethrow(Exception exception) en System.Reactive.Stubs.<>c.<.cctor>b21(Exception ex) en System.Reactive.AnonymousSafeObserver1.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.HalfSerializer.ForwardOnError[T](ISink1 sink, Exception ex, Int32& wip, Exception& error) en System.Reactive.Linq.ObservableImpl.TakeUntil2..OnError(Exception ex) en System.Reactive.Linq.ObservableImpl.Merge1.Observables._.InnerObserver.OnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Linq.ObservableImpl.Switch1..InnerObserver.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Linq.ObservableImpl.SelectMany2.ObservableSelector..InnerObserver.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Subjects.FastImmediateObserver1.EnsureActive(Int32 count) en System.Reactive.Subjects.FastImmediateObserver1.EnsureActive() en System.Reactive.Subjects.ReplaySubject1.ReplayBase.OnError(Exception error) en System.Reactive.Subjects.ReplaySubject1.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Linq.ObservableImpl.SelectMany2.ObservableSelector._.InnerObserver.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.AutoDetachObserver1.OnErrorCore(Exception exception) en System.Reactive.ObserverBase1.OnError(Exception error) en Xpand.Extensions.Reactive.Utility.Utility.<>cDisplayClass8_11.<Trace>b__3(Exception e) en System.Reactive.AnonymousSafeObserver1.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Linq.ObservableImpl.Switch1._.InnerObserver.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Subjects.FastImmediateObserver1.EnsureActive(Int32 count) en System.Reactive.Subjects.ReplaySubject1.ReplayBase.Subscribe(IObserver1 observer) en System.Reactive.Subjects.ReplaySubject1.Subscribe(IObserver1 observer) en System.ObservableExtensions.SubscribeSafe[T](IObservable1 source, IObserver1 observer) --- Fin del seguimiento de la pila de la ubicaciรณn anterior donde se produjo la excepciรณn --- en System.Reactive.PlatformServices.ExceptionServicesImpl.Rethrow(Exception exception) en System.Reactive.Stubs.<>c.<.cctor>b__2_1(Exception ex) en System.Reactive.AnonymousSafeObserver1.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Linq.ObservableImpl.SelectMany2.ObservableSelector._.InnerObserver.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Sink1.ForwardOnError(Exception error) en System.Reactive.Sink2.OnError(Exception error) en System.Reactive.Subjects.FastImmediateObserver1.EnsureActive(Int32 count) en System.Reactive.Subjects.ReplaySubject1.ReplayBase.Subscribe(IObserver1 observer) en System.Reactive.Subjects.ReplaySubject1.Subscribe(IObserver1 observer) en System.ObservableExtensions.SubscribeSafe[T](IObservable1 source, IObserver`1 observer) InnerException is null

apobekiaris commented 4 years ago

the stack does not say much only an access denied in c:\Windows\Microsoft.NET\assembly\GAC_MSIL\Xpand.XAF.Modules.ModelMapper\v4.0_2.201.2.0__c52ffed5d5ff0958\CSCD71EFD80BB4C44D1B5FEF2F950BEFC96.TMP

the webmodelmapper assembly should not be regenerated if it exists and at no case in the GAC. Are there any Xpand assemblies in your bin? if no can u copy them all there?

vimarx commented 4 years ago

using procmon from sysinternals.com shows that ModelMapperAssemblyweb is first searched (and if found loaded) from GAC even if I have an modelamapperaseemblyweb.dll in my app bin path with all Xpand's dlls (btw, I have all Xpand's Dll also in GAC)

apobekiaris commented 4 years ago

yeah i was under a different impression https://docs.microsoft.com/en-us/dotnet/framework/deployment/how-the-runtime-locates-assemblies

for now have to remove them from the GAC until i made some tests with the GAC, let me know if u do it and u continue having this problem

vimarx commented 4 years ago

The problen with the missing interface os still there

apobekiaris commented 4 years ago

don't have more ideas at the moment sorry, happy to debug it if u can sample me

apobekiaris commented 4 years ago

there are 2 possible reason for this exception

  1. the ReportsV2 module is not in the requiredTypesModules
  2. A different version of the module is in that collection

I need some time to provide more info

apobekiaris commented 4 years ago

maybe GAC is again to blame here I already did some modification to the ModelMapper about it however the builds currently fail. Once the builds pass I will research it further

expand commented 4 years ago

The DevExpress.XAF repository includes commits that relate to this task:

Please update the related Nuget packages and test if issues is addressed. These are nightly nuget packages available only from our NugetServer.

If you do not use the Xpand.XAF.Modules directly but through a module of the main eXpandFramework project, please wait for the bot to notify you again when integration is finished or update the related packages manually.

Thanks a lot for your contribution.

apobekiaris commented 4 years ago

so when u test #669 and u verify that GAC does not have dynamic assemblies, and the problem insists then please check your AppDomain.CurrentDomain.GetAssemblies() if it there multiple ReportsV2 and let me know their path if that's the case.

vimarx commented 4 years ago

still double loading in 19.2.601.7

image

vimarx commented 4 years ago

sorry, cleaned and tried again and no double loading... but the problem continues modeledit eXpressAppFramework.zip

apobekiaris commented 4 years ago

it is not the same prroblem, the model loads now


vxerp.win.exe Error: 0 : 20.02.20 08:32:11.495  no context  ================================================================================
The error occurred:

    Type:       NullReferenceException
    Message:    Referencia a objeto no establecida como instancia de un objeto.
    Data:       0 entries
    Stack trace:

   en DevExpress.XtraBars.Docking2010.Views.Tabbed.DocumentInfo.DevExpress.XtraTab.IXtraTabPage.get_Appearance()
   en DevExpress.XtraTab.ViewInfo.BaseTabPageViewInfo.get_PageAppearance()
   en DevExpress.XtraTab.ViewInfo.BaseTabPageViewInfo.GetPageAppearance(ObjectState state, DefaultBoolean isActive)
   en DevExpress.XtraTab.ViewInfo.BaseTabPageViewInfo.UpdatePaintAppearance()
   en DevExpress.XtraTab.ViewInfo.BaseTabHeaderViewInfo.UpdatePageStates()
   en DevExpress.XtraTab.ViewInfo.BaseTabControlViewInfo.OnHotTrackedPageChanged(IXtraTabPage prevPage)
   en DevExpress.XtraTab.ViewInfo.BaseTabHandler.OnMouseMove(MouseEventArgs e)
   en DevExpress.Utils.Controls.BaseHandler.ProcessEvent(EventType etype, Object args)
   en DevExpress.XtraBars.Docking2010.Dragging.DocumentManagerUIViewUIInteractionListener.OnMouseMove(MouseButtons buttons, LayoutElementHitInfo hitInfo)
   en DevExpress.XtraBars.Docking2010.DragEngine.UIInteractionService.DoMouseMove(MouseButtons buttons, LayoutElementHitInfo hitInfo)
   en DevExpress.XtraBars.Docking2010.DragEngine.UIInteractionService.CheckResetPrevHandlerMoveInfo(LayoutElementHitInfo hitInfo, MouseEventArgs ea)
   en DevExpress.XtraBars.Docking2010.DragEngine.UIInteractionService.ProcessMouseMove(LayoutElementHitInfo moveInfo, MouseEventArgs ea)
   en DevExpress.XtraBars.Docking2010.DragEngine.UIInteractionService.ProcessMouseOverride(IUIView view, MouseEventType eventType, MouseEventArgs ea)
   en DevExpress.XtraBars.Docking2010.DragEngine.UIService.ProcessMouse(IUIView view, MouseEventType eventType, MouseEventArgs ea)
   en DevExpress.XtraBars.Docking2010.DragEngine.UIViewAdapter.ProcessMouseEvent(IUIView view, MouseEventType eventType, MouseEventArgs ea)
   en DevExpress.XtraBars.Docking2010.DragEngine.MouseEventSubscriber`1.RootUIElementMouseMove(Object sender, MouseEventArgs e)
   en System.Windows.Forms.MouseEventHandler.Invoke(Object sender, MouseEventArgs e)
   en System.Windows.Forms.Control.OnMouseMove(MouseEventArgs e)
   en System.Windows.Forms.Control.WmMouseMove(Message& m)
   en System.Windows.Forms.Control.WndProc(Message& m)
   en System.Windows.Forms.MdiClient.WndProc(Message& m)
   en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    InnerException is null
apobekiaris commented 4 years ago

it is about the Office module from what we can see in your logs

vimarx commented 4 years ago

but, in the video, the web model throws an exception and opens "incomplete" (example, not all navigation items are visible).

the office exception is not a priority, but the right web model it is.

apobekiaris commented 4 years ago

can u remove the office module and try again?

apobekiaris commented 4 years ago

o posted wrong stack before here is the Office related stack from your logs

    Type:       NullReferenceException
    Message:    Referencia a objeto no establecida como instancia de un objeto.
    Data:       0 entries
    Stack trace:

   en DevExpress.ExpressApp.Win.Templates.XtraFormTemplateBase.get_View()
   en DevExpress.ExpressApp.Office.Win.OfficeDocumentManagerController.CheckOfficePropertyEditors(IViewHolder viewHolder)
   en DevExpress.ExpressApp.Office.Win.OfficeDocumentManagerController.View_DocumentDeactivated(Object sender, DocumentEventArgs e)
   en DevExpress.XtraBars.Docking2010.Views.DocumentEventHandler.Invoke(Object sender, DocumentEventArgs e)
   en DevExpress.XtraBars.Docking2010.Views.BaseView.RaiseDocumentDeactivated(BaseDocument document)
   en DevExpress.XtraBars.Docking2010.Views.BaseView.OnDocumentDeactivated(BaseDocument document)
   en DevExpress.XtraBars.Docking2010.Views.BaseView.SetActiveDocumentCore(BaseDocument document)
   en DevExpress.XtraBars.Docking2010.Views.BaseView.ActivateDocument(Control control)
   en DevExpress.XtraBars.Docking2010.MDIClientManagementStrategy.OnMdiChildActivate(Object sender, EventArgs e)
   en System.EventHandler.Invoke(Object sender, EventArgs e)
   en System.Windows.Forms.Form.OnMdiChildActivate(EventArgs e)
   en DevExpress.XtraEditors.XtraForm.OnMdiChildActivate(EventArgs e)
   en System.Windows.Forms.Form.WmMdiActivate(Message& m)
   en DevExpress.XtraEditors.XtraForm.WndProc(Message& msg)
   en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    InnerException is null
vimarx commented 4 years ago

ok, removing office module clear the office exception, but the original problem with Reports related exception continues.

Also, the modelmapperweb is CREATED when i open the ME web model, and if it exists, it seems to be modified.

apobekiaris commented 4 years ago

so when u test #669 and u verify that GAC does not have dynamic assemblies, and the problem insists then please check your AppDomain.CurrentDomain.GetAssemblies() if it there multiple ReportsV2 and let me know their path if that's the case.

also i suggest u try the XAF team about the office problem and depending on their answer i will apply or not a workaround

vimarx commented 4 years ago

vxerp.zip here are both modelmapperweb (the autogenerated if not exists and the one from the web)

apobekiaris commented 4 years ago

i do not make sense of your wording

apobekiaris commented 4 years ago

give me paths or screenshot me i fail to understand what u see

vimarx commented 4 years ago

I don't know if what I'm saying it is useful or not, I'm only saying that modeladaapterweb.dll is generated if not exists in the win app when trying to edit web model AND if it exists (copied from the web app) it is overwritten

apobekiaris commented 4 years ago

hmm it shouldn't be overwritten i would check it again, however I need to know how many ReportV2 assemblies are loaded. Can u post this info?

apobekiaris commented 4 years ago

how u tell that the assembly is overwritten? according this this instruction the assembly validation is skipped

https://github.com/eXpandFramework/DevExpress.XAF/blob/ca5635ac5629f7e08c1afbf1eca36a200bd4e823/src/Modules/ModelMapper/Services/TypeMapping/PublicMembers.cs#L94-L98

vimarx commented 4 years ago

it is strange, now the reports exception is not shown in the log anymore,

below are pasted assemblies (please note that I'm using both xaf reports modules v1 and v2)

Anonymously Hosted DynamicMethods Assembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null, Location=InMemory Module

... DevExpress.ExpressApp.Reports.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, Location=C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\DevExpress.ExpressApp.Reports.v19.2\v4.0_19.2.6.0b88d1754d700e49a\DevExpress.ExpressApp.Reports.v19.2.dll DevExpress.ExpressApp.Reports.v19.2.resources, Version=19.2.0.0, Culture=es, PublicKeyToken=b88d1754d700e49a, Location=C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\DevExpress.ExpressApp.Reports.v19.2.resources\v4.0_19.2.0.0_es_b88d1754d700e49a\DevExpress.ExpressApp.Reports.v19.2.resources.dll DevExpress.ExpressApp.Reports.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, Location=C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\DevExpress.ExpressApp.Reports.Web.v19.2\v4.0_19.2.6.0b88d1754d700e49a\DevExpress.ExpressApp.Reports.Web.v19.2.dll DevExpress.ExpressApp.Reports.Win.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, Location=C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\DevExpress.ExpressApp.Reports.Win.v19.2\v4.0_19.2.6.0b88d1754d700e49a\DevExpress.ExpressApp.Reports.Win.v19.2.dll DevExpress.ExpressApp.Reports.Win.v19.2.resources, Version=19.2.0.0, Culture=es, PublicKeyToken=b88d1754d700e49a, Location=C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\DevExpress.ExpressApp.Reports.Win.v19.2.resources\v4.0_19.2.0.0_es_b88d1754d700e49a\DevExpress.ExpressApp.Reports.Win.v19.2.resources.dll DevExpress.ExpressApp.ReportsV2.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, Location=C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\DevExpress.ExpressApp.ReportsV2.v19.2\v4.0_19.2.6.0b88d1754d700e49a\DevExpress.ExpressApp.ReportsV2.v19.2.dll DevExpress.ExpressApp.ReportsV2.v19.2.resources, Version=19.2.0.0, Culture=es, PublicKeyToken=b88d1754d700e49a, Location=C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\DevExpress.ExpressApp.ReportsV2.v19.2.resources\v4.0_19.2.0.0_es_b88d1754d700e49a\DevExpress.ExpressApp.ReportsV2.v19.2.resources.dll DevExpress.ExpressApp.ReportsV2.Web.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, Location=C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\DevExpress.ExpressApp.ReportsV2.Web.v19.2\v4.0_19.2.6.0b88d1754d700e49a\DevExpress.ExpressApp.ReportsV2.Web.v19.2.dll DevExpress.ExpressApp.ReportsV2.Win.v19.2, Version=19.2.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, Location=C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\DevExpress.ExpressApp.ReportsV2.Win.v19.2\v4.0_19.2.6.0b88d1754d700e49a\DevExpress.ExpressApp.ReportsV2.Win.v19.2.dll DevExpress.ExpressApp.ReportsV2.Win.v19.2.resources, Version=19.2.0.0, Culture=es, PublicKeyToken=b88d1754d700e49a, Location=C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\DevExpress.ExpressApp.ReportsV2.Win.v19.2.resources\v4.0_19.2.0.0_es_b88d1754d700e49a\DevExpress.ExpressApp.ReportsV2.Win.v19.2.resources.dll ... HarmonySharedState, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null, Location=InMemory Module ... ModelAssembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null, Location=C:\test\vxerp\ModelAssembly.dll ModelMapperAssemblyWin, Version=2.201.5.4, Culture=neutral, PublicKeyToken=null, Location=C:\test\vxerp\ModelMapperAssemblyWin.dll ... wqswsyxy, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null, Location=

apobekiaris commented 4 years ago

i am not sure i can trust this info i want u to do something like

var assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(assembly => assembly.GetName().Name==typeof(Reportsv2Module).Assembly.GetName().Name).ToArray();

after application loaded and tell me how many items in the array and if more than 2 their Location

apobekiaris commented 4 years ago

it is strange, now the reports exception is not shown in the log anymore,

that was my point before when i said the model now loads and the exception was about the office module.

vimarx commented 4 years ago

ahh I'm understanding your point now, but its seems to be incomplete (at least there are only a few navigation items) :(

apobekiaris commented 4 years ago

if there are no exceptions for the incomplete module u have to focus on the assemblies that contruct it. I mean are they all in path? the navigation for example comes from the asembly that your BO are. Is this assembly in path. Can u provide a sample?

vimarx commented 4 years ago

ok, I will work on this and return later with more info, thanks for your effort!

vimarx commented 4 years ago

i am not sure i can trust this info i want u to do something like

var assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(assembly => assembly.GetName().Name==typeof(Reportsv2Module).Assembly.GetName().Name).ToArray();

after application loaded and tell me how many items in the array and if more than 2 their Location

after win app load or after ME in win app loads?

apobekiaris commented 4 years ago

good question

do an application.CustomHandleException+= make the call here

apobekiaris commented 4 years ago

oops sorry do it on a detailview controller for the MDO object after the web model is loaded