|
|
|
rahulsingla.com Joined: 2/3/2008
Posts: 189
|
|
|
My Event log shows the following 2 errors every time the application restarts:
1/26/2009 9:12:26 PM Host Alert EventQueue.ProcessMessage: Message Processing Failed; Proces ... |
EventQueue.ProcessMessage: Message Processing Failed
ProcessorType: DotNetNuke.Entities.Modules.EventMessageProcessor, DotNetNuke
Body:
Sender:
BusinessControllerClass: Imbibe.DNN.Modules.Member.MemberController, II_Members
DesktopModuleId: 58
UpgradeVersionsList: 02.00.00
ExceptionMessage: Value cannot be null. Parameter name: type
Server Name: IKE-LAPI
|
|
1/26/2009 9:12:26 PM General Exception AssemblyVersion: 04.09.00; PortalID: -1; PortalN ... |
AssemblyVersion: 04.09.00
PortalID: -1
PortalName:
UserID: -1
UserName:
ActiveTabID: -1
ActiveTabName:
RawURL: /ioffice/Host/Host Settings/tabid/16/portalid/0/Default.aspx
AbsoluteURL: /ioffice/Host/Host%20Settings/tabid/16/portalid/0/Default.aspx
AbsoluteURLReferrer: http://localhost/ioffice/Host/Host%20Settings/tabid/16/portalid/0/Default.aspx
UserAgent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30618; FDM)
DefaultDataProvider: DotNetNuke.Data.SqlDataProvider, Imbibe.DNN.Provider.SharedProfile
ExceptionGUID: 749d5c6d-5672-4033-9bae-bba707de340c
InnerException: Could not load type 'Imbibe.DNN.Modules.Member.MemberController' from assembly 'II_Members'.
FileName:
FileLineNumber: 0
FileColumnNumber: 0
Method: System.RuntimeTypeHandle._GetTypeByName
StackTrace:
Message: System.TypeLoadException: Could not load type 'Imbibe.DNN.Modules.Member.MemberController' from assembly 'II_Members'. at System.RuntimeTypeHandle._GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, Boolean loadTypeFromPartialName) at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark) at System.RuntimeType.PrivateGetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark) at System.Type.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase) at System.Web.Compilation.BuildManager.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase) at DotNetNuke.Framework.Reflection.CreateType(String TypeName, String CacheKey, Boolean UseCache, Boolean IgnoreErrors)
Source:
Server Name: IKE-LAPI
|
|
What's more, both of these messages are repeated 3 times, everytime the application restarts. I am completely stumped at his one.
I have created & installed custom modules into DNN, whose Assembly and class names are visible in the log above. But I have NOT plugged into the application domain loading up process in any way.
My modules are working fine. Even if I assume that there is some problem with my modules, it should show up when the page containing the module is requested. I have no idea what's going wrong on app restart. This even happens on clicking 'Restart application' on Host Settings page.
Any advice would be greatly appreciated.
|
|
|
|
| |
|
|
www.seeleyware.com Joined: 8/8/2006
Posts: 597
|
|
|
What the problem is that your module manifest file doesn't correctly reference the appropriate BusinessControllerClass. The "businesscontrollerclass" section should display an actual Namespace and class; since you've already installed it, you'll need to change it manually in the database table "DesktopModules" (BusinessControllerClass column) or fix in your manifest and reinstall; also depending which version of DNN you may need to manually fix the EventQueue table so it doesn't try to reprocess -- I've just updated EventQueue and set IsComplete = 1 where IsComplete = 0 when I had this problem in the past.
Snippet of one of my manifest files below:
<dotnetnuke type="Module" version="3.0">
<folders>
<folder>
<name>MACU.Rewards</name>
<friendlyname>MACU.Rewards</friendlyname>
<foldername>MACU.Rewards</foldername>
<modulename>MACU.Rewards</modulename>
<description>Module used to manage Employee recognition, fitness tracking, etc.</description>
<version>01.00.00</version>
<businesscontrollerclass>Macu.Modules.Rewards.Components.RewardsController</businesscontrollerclass>
<modules> ...
</modules></folder></folders>
</dotnetnuke>
|
|
|
|
| |
|
|
rahulsingla.com Joined: 2/3/2008
Posts: 189
|
|
|
Jon Seeley wrote
you may need to manually fix the EventQueue table so it doesn't try to reprocess -- I've just updated EventQueue and set IsComplete = 1 where IsComplete = 0 when I had this problem in the past.
Thanx Jon. This solved the issue. I was so fed up at finding the cause of this, that it had come to a point, where I was disturbing the perfect code of my modules, to see who the culprit was. I thought that DNN should try to create an object of my BusinessControllerClass only when the page containing the module loads.
Let me explain what went wrong, so that others can benefit from it. I had a module whose BCC (BusinessControllerClass) did not implement IUpgradable in first version. In second version it did, however the BCC had no parameterless constructor. So, while upgrading, DNN was not able to create an instance of the class, and so left a message in EventQueue and tries to upgrade it on every restart.
This is where, I disagree with the behaviour. If a module cannot be upgraded on installation, what's the point in pursuing it later and causing unncessary exceptions??
|
|
|
|
| |
|
|
|
r_honey wrote
Jon Seeley wrote
you may need to manually fix the EventQueue table so it doesn't try to reprocess -- I've just updated EventQueue and set IsComplete = 1 where IsComplete = 0 when I had this problem in the past.
|
Thanx Jon. This solved the issue. I was so fed up at finding the cause of this, that it had come to a point, where I was disturbing the perfect code of my modules, to see who the culprit was. I thought that DNN should try to create an object of my BusinessControllerClass only when the page containing the module loads.
Let me explain what went wrong, so that others can benefit from it. I had a module whose BCC (BusinessControllerClass) did not implement IUpgradable in first version. In second version it did, however the BCC had no parameterless constructor. So, while upgrading, DNN was not able to create an instance of the class, and so left a message in EventQueue and tries to upgrade it on every restart.
This is where, I disagree with the behaviour. If a module cannot be upgraded on installation, what's the point in pursuing it later and causing unncessary exceptions??
The reason for DNN re-trying I am guessing is that DNN doesn't necessarily know WHY it failed, and in order to be a good "host system" it needs to re-try the operation, to ensure that the module is up to date.
|
|
|
|
| |
|
|
rahulsingla.com Joined: 2/3/2008
Posts: 189
|
|
|
Mitch Sellers wrote
The reason for DNN re-trying I am guessing is that DNN doesn't necessarily know WHY it failed, and in order to be a good "host system" it needs to re-try the operation, to ensure that the module is up to date.
And in the process filling up the Event Log with errors unnecessarily??? If it did not work at module upgrade time, how can it work later (assuming you are not changing the code manually after module install, which should be the normal scenario in most hosted situations)??
|
|
|
|
| |