When you attempt to open the forum module Control Panel, you receive a.net load error that says a critical error has occurred. Upon looking at the log files for the website within DNN, you’ll notice that the related error message looks something like this.
bsoluteURL:/Default.aspxDefaultDataProvider:DotNetNuke.Data.SqlDataProvider, DotNetNukeExceptionGUID:1012073d-d31d-4a73-a051-31478c9de05dAssemblyVersion:7.4.0PortalId:0UserId:3429TabId:107RawUrl:/Resources/Forum/ctl/EDIT/mid/506Referrer:http://website.com.au/Resources/ForumUserAgent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/600.6.3 (KHTML, like Gecko) Version/8.0.6 Safari/600.6.3ExceptionHash:eUa1nHF8hNveOCQzqX0zOg==Message:Object reference not set to an instance of an object.StackTrace:InnerMessage:Object reference not set to an instance of an object.InnerStackTrace: at DotNetNuke.Modules.ActiveForums.Controls.Callback.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)Source:FileName:FileLineNumber:0FileColumnNumber:0Method:Server Name: SERVERNAME
It is good practice to ensure that you have the latest version of the DotNetNuke forum module on your website. Especially if you are using the later versions of DNN. Currently the module project has been moved into an open source project on GitHub. The latest version can be found here: https://github.com/ActiveForums/ActiveForums
fixing the error
you need to ensure that the web.config file also includes the following reference.
<section name=”cryptography” requirePermission=”false” type=”DotNetNuke.Framework.Providers.ProviderConfigurationHandler, DotNetNuke” />
<add name=”CoreCryptographyProvider” type=”DotNetNuke.Services.Cryptography.CoreCryptographyProvider, DotNetNuke” providerPath=”~\Providers\CryptographyProviders\CoreCryptographyProvider\” />
Accessing your Google Analytic Data via API
To allow a third party module or application to view and display your Google Analytics data for your website. You need to get a few things organised.
Go to: http://www.google.com/analytics/ and follow their instructions to set up your URL under an account that you can manage and access with Admin permissions. We are not going to go through these steps here as it is a given that you will have this. Seek help from Google if you can’t manage.
Go to: https://developers.google.com/ and login with your account.
To get started using Google Analytics API, you need to first create or select a project in the Google Developers Console and enable the API. Using this link guides you through the process and activates the Google Analytics API automatically.
Alternatively, you can activate the Google Analytics API yourself in the Developers Console by doing the following:
In either case, you end up on the Credentials page and can create your project’s credentials from here.
From the Credentials page, click Create new Client ID under the OAuth heading to create your OAuth 2.0 credentials.
The newly created service account will have an email address, <projectId>-<uniqueId>@developer.gserviceaccount.com; Use this email address to add a user to the Google analytics account you want to access via the API. For this tutorial only Read & Analyzepermissions are needed.
Select User Management (in the Analytics Admin)
Enter the weird email address from the API credentials step above to give Read & Analyze permissions.
If you get all that right, then the module we use, will work to access your Google Analytics data from within your module.
These instruction have been updated from the Zendesk instructions provided here: https://support.zendesk.com/hc/en-us/articles/203660156-Zendesk-for-Microsoft-Dynamics-CRM-Part-1-Installing-the-Zendesk-for-Microsoft-Dynamics-CRM-as-a-module-in-Microsoft-Dynamics-CRM
They use a combination of the original processes that Zendesk have created originally for CRM 2011 and that worked on Pre SP1 versions of CRM 2013. The packages referenced have been update by InteractiveWebs to work with CRM 2013 Post SP1 and CRM 2015 (technically all versions but we recommend post SP 0.1)
Install the CRM Managed Solution as you would any other CRM solution.
Download the managed solution for CRM 2015 https://www.dropbox.com/s/0rhlgnxcwz9s4yh/ZendeskDynamicsCRMConnector_2_0_0_2_managed.zip?dl=0
In CRM Navigate to SETTINGS / SOLUTIONS
Click on Import
Select the Managed CRM package – Click Next
Leave the Enable any SDK ticked, and click on Import
Allow the Import to take place
Click on Close
On Completion, Click “Publish All Customisations”.
In the CRM menu, select Settings / Security
Select the User that you wish to use to bring in Zendesk Integration Items. We are using in this example the Administrator account, but it could be anyones account.
Then with the account loaded, select the additional item dropdown menu to the far right of the top level menu, selecting Manage Roles
Select Zendesk Administrator
There is also a Zendesk Read configuration setting. The Zendesk support site has details on how this can be used.
Double Click on that name to load the account.
In your browser, click on Refresh to reload the CRM page, and in turn the top level menu that has been updated after import for the Zendesk Solution.
In the CRM system, select Settings / Zen Entity Mappings
Click + New
The most typical setups are things like on a “Contact” entity, match the Zendesk ticket requester with the email address on the “Contact” record. But what if you wanted to match of the “Full Name” field instead in both systems? Now you can by utilizing entity mappings.
Here’s a list of the most common types of mappings:
In CRM Navigate to Settings / ZD Settings (Note that this one is not the ZD Personal Settings Menu Item).
NOTE – This works best in Chrome – We found troubles with IE and Safari (not our work)!
You now need to set up your Zendesk credentials so that the system can authenticate to the appropriate Zendesk instance.
To do so, navigate to Settings, then locate the Zendesk Settings->Settings title and click the title.
You will be presented with 4 sections:
Now you are ready to add the Zendesk ticketing panel to any of the entity pages that you’ve configured mappings for. You need to repeat the steps below for each entity type you want the ticketing grid displayed on.
Next you need to enable your CRM instance to use the InteractiveWebs Web Service that will connect Zendesk to your CRM instance either in the cloud, IFD or on premises.
instance of CRM then go here: http://www.interactivewebs.com/Admin/Zendesk/tabid/3566/Default.aspx
If you have never registered with InteractieWebs then click on “Subscribe Now”
Fill in the form with the following details.
Username: Select a user name to use with our website.
Password: Select a password to use on our website
Email: Be sure to use a valid email address. We will not share or spam you, but for services we need this to be accurate.
First Name: Your First Name
Last Name: Your Last Name
CRM Address: This is the address of your CRM server in the following format: e.g.. https://contoso.hostedcrm.com:444/ You type “contoso.hostedcrm.com” (without the “ “ ).
CRM Organization: You administrator can help with this, but in the example above it is “contoso” and is usually the word before the domain of your hosting environment.
You can contact us on the help link at the bottom of the page if you are not sure what you should type here.
you will need a custom version of the web service to host on your own servers. Contact us at our website: http://www.interactivewebs.com/ContactUs/tabid/55/Default.aspx
and advise that you are after a custom web service for Zendesk to CRM 2015 integration. Advise us of:
1. The URL you use to access your CRM internally.
2. The Organisation name you use in CRM.
We can then provide you with a custom web service for $200 one off fee with no expiry date on the web service.
It is possible to display the user data from Microsoft CRM in the Zendesk tickets. To do this:
1. In Zendesk select Admin
2. Select Apps / Market Place and search the words – “Microsoft Dynamics”
3. Install the App – Microsoft Dynamics
Under Manage – you should see the app installed:
Installing this will allow you to select the “User Data Lookup” Feature that is explained in the next section below.
– Found in the Extensions / CRM in Zendesk.
Now you will need to set up the Zendesk side of the integration.
To do this, you login to your Zendesk interface and Admin / Extensions
In Extensions you select CRM
Select Microsoft Dynamics CRM 2011
Select your hosting type
If you have IFD or Microsoft Cloud Hosted Solution, select Cloud or IFD respectively
For the Web Service (having subscribed to the service) put in: https://zendesk.interactivewebs.com (note that this will only work if you have subscribed)
If you have an on-premise then select that and put in the URL of your web service that was supplied to you after contact InteractiveWebs for a custom solution.
All the other data for that page is per the instructions and help provided by Zendesk in their help pages found here:
If you have problems or questions, please feel free to contact us at: http://www.interactivewebs.com – We have a range of other integration products, including website to CRM integrations for forms, billing, kb, support and more.
The symptoms of this are fairly easy. When you click on the Read more link or the title of a blog that would normally take you to the full article of the blog. The page instead displays a 404 error.
If you explore the URL you will find that the URL references the blog title something like this: http://canopi.com.au/Blog/Post/355/Single-Server-Sign-On-SSO-Part-1
take note that the URL does not end with the .aspx
The URL of the blog post is being rewritten through the friendly URL settings within the later versions of DNN.
the friendly URL settings can be found within: HOST / ADVANCED SETTINGS / FRIENDLY URL SETTINGS
and by default in the later versions of DNN are enabled. The problem arises when the web.config file is missing a setting for the advanced URL rewriting.
the fix is very easy and involves editing the web.config file.
1. Take a backup of the web.config file for your site2. Open the web.config file, and search for ‘urlformat’. You should find this in the section, like this:
<add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules" includePageName="true" regexMatch="[^a-zA-Z0-9 _-]" urlFormat="humanfriendly" />
3. Change the urlFormat value to ‘advanced’, like this:
<add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules" includePageName="true" regexMatch="[^a-zA-Z0-9 _-]" urlFormat="advanced" />
Fields that are not valid were specified for the entity
The cause of this is likely that one of the attributes that you are importing (from a dev environment) already exists in the CRM instance, but with a different attribute.
in other words, the same name for the attribute, but a different kind of field.
Then try to export from DEV and import to LIVE. You get the error.
You have to remove the conflicting fields from the destination (live in the example above) CRM system.
Microsoft gives you some help here, in the form of an XML dump file. What you need to do is open that file in something like DreamWeaver that has the ability to apply “Source Formatting”. This makes the file pretty to read.
Then do a search for the text “errortext” and start clicking next / next till you get to some text with an attribute and an error message.
In our case:
<Cell ss:StyleID=”s137″ name=”ErrorText”> <Data ss:Type=”String”>Attribute new_leasecustomer is a Picklist, but a Boolean type was specified.</Data> </Cell>
This gives the name of the attribute at fault.
And the error on the import will tell you the Entity that it failed the import on. Again in this case it was the ACCOUNT entity.
So we just removed that attribute from any forms and views, then deleted the attribute (be sure that your live data is not relying on data entered here by users as you will loose it). Publish the entity. Then test the import again.
Sometimes when you try to delete a managed Solution, there is an error message about the dependancies of the solution being in use.
When you download the log file, you see some typical Microsoft Crap that really does nothing to help you.
The only thing it does is to tell you that you can’t delete the component because it is being used in this case by two other components.
Now the hard part is finding the components that are using it.
1. Work out the Solution Name. Navigate to CRM / Settings / Solutions – and read the exact Name of the Solution to be deleted. In this case it was “ZendeskCRM2011Connector“
2. Login to your CRM Server and open the SQL database that matches the Organisation name being used in CRM.
3. Execute an SQL query against that database that reads.
selectSolutionIdfromSolutionwhereUniqueName=’Name of your Solution‘
(Replacing the Name of Your Solution) with the exact name of your solution, So in our case:
And it executes to give:
This gives you the GUID of the managed solution in the results area. In our example it is the: 3AC85885-F78B-47A3-BAB5-F8DE569B4EDD number at the bottom.
4. Now navigate to the following URL:
https://YOUR CRM URL/tools/dependency/dependencyviewdialog.aspx?objectid=GUID&objecttype=7100&operationtype=dependenciesforuninstall
Replacing the “YOUR CRM URL” with the URL to your own CRM system. and replace the GUID with the GUID retrieved from step 3 above. Thus the URL may look like this:
It will show a page that looks like this:
Which you can use to help you work out what to edit to remove the dependencies and delete the solution.
Thanks Microsoft for making something so easy so hard!
Install the Following Components
The following method is use to install the Windows Search Service on Windows 2012 R2. The search feature is launched form the Server Manger (which will start by default as login as an administrator).
Click Add Roles and Features
Next (without selecting anything)
With the Features, select Windows Search Service – Next
Run through the process again
Next (without selecting anything)
This time select the Web Server (IIS)
When prompted select Add Features
When installing the SQL server, the required features are almost the default features with the following two ticks.
1. Database Engine Service
2. Full-Text and Semantic Extractions for Search
CRM will work much better with IIS Dynamic Compression. The install this you follow the normal Roles and Features install, and find the section for:
Web Server Role (IIS)
Second option: Under Server Manager click Add roles and features
This ensures that you can enable dynamic compression after install to ensure that performance is best.
Your session in Microsoft Dynamics CRM is about to expire. To continue working, you must sin in again.
By Default this setting is 60 minutes, and the message will pop up around 20 minutes before logout.
Any unsaved changes will be lost as your session ends.
To extend the automatic logout time in CRM 2015, we must extend the time set in ADFS 3.0 using the PowerShell command. First we need to know the name that was used to set up the Relying Party Trust in ADFS.
1. Open Server Manager and from the Tools menu select ADFS Management
2. in AD FS management, open Relying Party Trusts and find the Display name for the CRM IFD Relying Party Trust
In this case, we have called the Relying Party Trust – “CRM IFD Relying Party” as we keep things simple when we create things. Using the exact name for the title of the trust as we created it. But really it could be anything. One distinguishing feature is that the URL identifier is going to be optioning to the URL that displays in the browser window when you are in the process of login into your IFD CRM.
3. Start PowerShell
4. Check you have the correct name of the Relying Party Trust by typing the following command.
Get-ADFSRelyingPartyTrust -Name "relying_party"
Where you replace the “relying_party” with the name you identified in Step 2 above. In our case the command will be:
Get-ADFSRelyingPartyTrust -Name “CRM IFD Relying Party“
The result should look something like this if you get it correct.
5. Not type the command to set the time you want to set for Auto Logout.
Set-ADFSRelyingPartyTrust -Targetname “CRM IFD Relying Party“ -TokenLifetime 720
(Again replacing the “CRM IFD Relying Party” with the name used on your system.)
Note: The 720 is time in minutes. 12 Hours in this case. You can change the value up and down as liked.
6. Close out the PowerShell and you are done.
‘Agent XPs’ component is turned off as part of the security configuration for this server. A system administrator can enable the use of ‘Agent XPs’ by using sp_configure. For more information about enabling ‘Agent XPs’ see “Surface Area Configuration” in SQL Server Books Online. (Object Explorer)
Details of the error are:
Cannot show requested dialog.
Unable to execute requested command.
at Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ToolMenuItemHelper.OnCreateAndShowForm(IServiceProvider sp, XmlDocument doc) at Microsoft.SqlServer.Management.SqlMgmt.RunningFormsTable.RunningFormsTableImpl.ThreadStarter.StartThread()
‘Agent XPs’ component is turned off as part of the security configuration for this server. A system administrator can enable the use of ‘Agent XPs’ by using sp_configure. For more information about enabling ‘Agent XPs’, see “Surface Area Configuration” in SQL Server Books Online. (Microsoft.SqlServer.Management.MaintenancePlanWizard)
at Microsoft.SqlServer.Management.MaintenancePlanWizard.MaintenancePlanWizardForm.LoadData() at Microsoft.SqlServer.Management.MaintenancePlanWizard.MaintenancePlanWizardForm..ctor(XmlDocument doc, IServiceProvider serviceProvider)
This is caused because the “SQL Server Agent” is not running.
By default, this service is set to start manually. This is normal after a fresh install.
1. Open SQL Server Configuration Manager
2. Start the service for SQL Server Agent.
3. Right click the service and select Properties
4. Click the Service tab and change the start mode to Automatic
Error when attempting to login to a New Organisation in CRM 2015 IFD
When attempting to login to a newly configured Organisation you may receive an error looking like this.
Because IFD (Internet Facing Deployment) uses the AD FS Authentication it requires an additional step after using the CRM Deployment Manager to setup a new Organisation to then register at login with the AD FS setup.
Basically it is saying that you have set up the org, but not gin figured the authentication login settings in AD FS.
1. Open AD FS Mananagement
2. Click on AD FS / Trust Relationships / Relying Party Trusts and local your CRM IFD Relying Party Trust associated with the IFD Authentication.
3. Highlight it, and select Update Federation Metadata
And you are done!
You should now be able to login to the CRM server without getting the error message, and with no need to reset IIS or any other services.