Overview
This article aims to provide possible solutions on how to resolve a missing Persona Bar to restore administrative functions. There are three fixes outlined in this article:
- The website files are located on a Root Drive rather than inside a Folder
- The
web.config
file is missing the correct assembly binding - Missing Application pool user permissions
As with all display errors, any module, skin, or plug-in may affect page rendering and prevent elements from appearing. When troubleshooting a malfunctioning UI element, we strongly advise that the default skin be loaded and all custom extensions and browser extensions that modify page content be disabled. See the Testing section at the end of this article for tips on how to effectively test UI error solutions.
Solutions
The website files are located on a Root Drive rather than inside a Folder
- Create a new folder within the drive. The directory for websites is usually located in the following path on your server:
C:\inetpub\wwwroot\Your_Website_Folder
- Apply the correct IIS permissions to the new folder by following the steps in our Set Up the DNN Folder article.
- Move the DNN website files to the newly created folder.
- Change the website's physical path to point to this new folder on IIS by following the steps in our Set Up IIS article.
- Go to Control Panel > Administrative Tools > Internet Information Services (IIS) Manager.
- Click on Manage Server > Restart to restart IIS and reload your website.
The web.config
file is missing the correct assembly binding
If the error message [ERROR] DotNet.Nuke.Common.Internal.ServicesRoutingManager - Unable to register service routes
below is displayed after an upgrade; this means no API routing is getting registered. The solution is to add the correct assembly binding into the assemblyBinding
section of the web.config
file.
[ERROR] DotNetNuke.Common.Internal.ServicesRoutingManager - Unable to register service routes
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. --->
System.IO.FileLoadException: Could not load file or assembly 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies.
The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
- Access the
web.config file
by following the steps in our article Accessweb.config
article. - Identify the
assemblyIdentity
node causing the problem or throwing an exception (in this example, theNewtonsoft.Json
assembly):
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="4.0.0.0" />
</dependentAssembly> - Replace the
bindingRedirect
tag with the correct routing information for theassemblyIdentity
:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
<bindingRedirect oldVersion="0.0.0.0-32767.32767.32767.32767" newVersion="7.0.0.0" />
</dependentAssembly> - Go to Control Panel > Administrative Tools > Internet Information Services (IIS) Manager.
- Click on Manager Server > Restart to restart IIS and reload your website.
Missing Application pool user permissions on the Root folder
Please make sure the root folder has the Read and Write Permission by following below steps:
- On IIS, right-click on the DNN application on the left-hand side of Connections under Sites and click Explore.
-
To set the entire/main DNN folder as the root directory, then right-click on the main folder and properties
-
Click on the "Sharing" tab, then click "Advanced Sharing"
-
Check/Select the "Share this Folder" option and click "Ok"
-
Go back to the Sharing tab again with a "Network Path" to be saved in notepad since it will be used on the site
-
Click on "Share" button, then add the necessary permissions, make sure to set the permission to be "Read and Write" not only read, then click Share
-
A popup window will appear. Select Yes to confirm the folder has been shared, then click Done, then close.
After then you should open IIS and edit the file permissions using the App Pool identity (for example, if your site name on IIS is TestSite, this would be the app pool identity).
-
Right-click on the site that you created (TestSite in this example) and click on Edit Permissions.
-
Go to Security and click Edit.
-
Click Add.
-
Add permissions to the user,
IIS AppPool\<NameofTheSiteCreated>
. This is because we are providing permissions using the App Pool identity. -
Provide Full Control to the selected user.
Comments
1 comment
This article's "using the web.config to fix the Persona bar" section points to using the Persona bar to edit the web.config. This is a circular loop, I suggest providing a different support article than the following to locate the web.config file with a text editor instead:
https://dnnsupport.dnnsoftware.com/hc/en-us/articles/360004742453-Access-web-config
Please sign in to leave a comment.