The module menu dropdown (the down arrow on modules that provides a menu to edit the settings, etc) turns to a spinner, but never shows the menu items. Every time I attempt this, a log entry similar to the following occurs. The module dropdown menus worked fine in version 5.1.2. In the upgrade, I experienced the HTML_Community upgrade error, but fixed this using the code from http://support.dotnetnuke.com/issue/ViewIssue.aspx?id=10706
James Luther [9/30/2009 11:58:41 AM]
I had the same problem and had upgraded from 4.9.2, to 5, to 5.1, to 5.1.3. I had 4 modules that had 2 settings records, one with 'HtmlText_ReplaceTokens' and one with 'TEXTHTML_ReplaceTokens'. So when the 05.01.03.SqlDataProvider ran, the Update statement it ended up with duplicate SettingNames.
update {databaseOwner}{objectQualifier}ModuleSettings
set SettingName = 'HtmlText_ReplaceTokens'
where SettingName = 'TEXTHTML_ReplaceTokens'
I ran this query to find the "bad" records:
SELECT A.[ModuleID]
,A.[SettingName]
,A.[SettingValue]
,A.[CreatedByUserID]
,A.[CreatedOnDate]
,A.[LastModifiedByUserID]
,A.[LastModifiedOnDate]
FROM [ModuleSettings] AS A
WHERE 1=1
AND 0 < (
SELECT COUNT(*)
FROM [ModuleSettings] AS B
WHERE B.[ModuleID] = A.[ModuleID] AND B.[SettingName] = 'HtmlText_ReplaceTokens'
)
AND A.[SettingName] = 'TEXTHTML_ReplaceTokens'
ORDER BY A.[ModuleID]
Then ran this query to get rid of the 4 "bad" records:
DELETE FROM [HS_Dev].[dbo].[ModuleSettings]
WHERE 0 < (
SELECT COUNT(*)
FROM [ModuleSettings] AS B
WHERE B.[ModuleID] = [ModuleSettings].[ModuleID] AND B.[SettingName] = 'HtmlText_ReplaceTokens'
)
AND [ModuleSettings].[SettingName] = 'TEXTHTML_ReplaceTokens'
and also had the icon issue (again) fixed using the recommendation from http://www.dotnetnuke.com/Community/Forums/tabid/795/forumid/107/threadid/315054/scope/posts/threadpage/1/Default.aspx
David A-W wrote
On the Host > SQL page, try running the following:
UPDATE dbo.{objectQualifier}Tabs
SET IconFile = REPLACE(IconFile, '~/images/', '/images/')
, IconFileLarge = REPLACE(IconFileLarge, '~/images/', '/images/')
WHERE IconFile LIKE '~/images/%'
Then go to Host > Host Settings and click Restart Application.
Below is the error message that occurs after mouse-over the drop-down (while logged in as Host account):
AssemblyVersion: 5.1.4
PortalID: 0
PortalName: [MyPortalName]
UserID: [userid]
UserName: [username]
ActiveTabID: 48
ActiveTabName: Log Viewer
RawURL: /Admin/LogViewer.aspx
AbsoluteURL: /Default.aspx
AbsoluteURLReferrer:
http://[MyPortalURI]/Admin/LogViewer.aspx
UserAgent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
DefaultDataProvider: DotNetNuke.Data.SqlDataProvider, DotNetNuke.SqlDataProvider
ExceptionGUID: dedd6241-ab75-4116-af8f-775ca0d880e7
InnerException: Unhandled Error:
FileName:
FileLineNumber: 0
FileColumnNumber: 0
Method: System.Security.CodeAccessSecurityEngine.ThrowSecurityException
StackTrace:
Message: System.Exception: Unhandled Error: ---> DotNetNuke.Services.Exceptions.PageLoadException: Exception has been thrown by the target of an invocation. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.MethodAccessException: VB$AnonymousType_0`1.get_d() ---> System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed. at System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Assembly asm, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission permThatFailed) at System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Object assemblyOrString, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission permThatFailed) at System.Security.CodeAccessSecurityEngine.CheckSetHelper(PermissionSet grants, PermissionSet refused, PermissionSet demands, RuntimeMethodHandle rmh, Object assemblyOrString, SecurityAction action, Boolean throwException) at System.Security.PermissionSetTriple.CheckSetDemand(PermissionSet demandSet, PermissionSet& alteredDemandset, RuntimeMethodHandle rmh) at System.Security.PermissionListSet.CheckSetDemand(PermissionSet pset, RuntimeMethodHandle rmh) at System.Security.PermissionListSet.DemandFlagsOrGrantSet(Int32 flags, PermissionSet grantSet) at System.Threading.CompressedStack.DemandFlagsOrGrantSet(Int32 flags, PermissionSet grantSet) at System.Security.CodeAccessSecurityEngine.ReflectionTargetDemandHelper(Int32 permission, PermissionSet targetGrant, CompressedStack securityContext) at System.Security.CodeAccessSecurityEngine.ReflectionTargetDemandHelper(Int32 permission, PermissionSet targetGrant) The action that failed was: Demand The type of the first permission that failed was: System.Security.Permissions.ReflectionPermission --- End of inner exception stack trace --- at System.Reflection.MethodBase.PerformSecurityCheck(Object obj, RuntimeMethodHandle method, IntPtr parent, UInt32 invocationFlags) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Web.Script.Serialization.JavaScriptSerializer.SerializeCustomObject(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse) at System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse) at System.Web.Script.Serialization.JavaScriptSerializer.SerializeValue(Object o, StringBuilder sb, Int32 depth, Hashtable objectsInUse) at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj, StringBuilder output) at System.Web.Script.Serialization.JavaScriptSerializer.Serialize(Object obj) --- End of inner exception stack trace --- at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at DotNetNuke.UI.Utilities.Reflection.InvokeMethod(Type Type, String MethodName, Object Target, Object[] Args) at DotNetNuke.UI.Utilities.MSAJAX.Serialize(Object Obj) at DotNetNuke.UI.Utilities.ClientAPICallBackResponse.Write() at DotNetNuke.UI.Utilities.ClientAPI.HandleClientAPICallbackEvent(Page objPage, CallBackTypeCode eType) at DotNetNuke.UI.Utilities.ClientAPI.HandleClientAPICallbackEvent(Page objPage) at DotNetNuke.Framework.DefaultPage.Page_Init(Object sender, EventArgs e) at System.Web.UI.Control.OnInit(EventArgs e) at System.Web.UI.Page.OnInit(EventArgs e) at DotNetNuke.Framework.PageBase.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) --- End of inner exception stack trace --- at DotNetNuke.Services.Exceptions.Exceptions.ProcessPageLoadException(Exception exc, String URL) at DotNetNuke.Framework.PageBase.OnError(EventArgs e) at System.Web.UI.Page.HandleError(Exception e) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest() at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) at System.Web.UI.Page.ProcessRequest(HttpContext context) at ASP.default_aspx.ProcessRequest(HttpContext context) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) --- End of inner exception stack trace ---