General Tips

DNN Event ID 1310 after moving website to new server Exception message: Unsecured Passwords Format Detected

IIS throwing Event ID 1310 Exception message: Unsecured Passwords Format Detected

1310

The Error Message

Exception information: Exception type: ConfigurationErrorsException Exception message: Unsecured Passwords Format Detected. The Membership Provider that contains the unsecure passwords format is: AspNetSqlMembershipProvider. The obsoleted password format is: Encrypted. For more information, see https://go.microsoft.com/fwlink/?linkid=834784.

Request information: Request URL: Request path: User host address: User: Is authenticated: False Authentication Type: Thread account name: IIS APPPOOL\DefaultAppPool

The Problem was actually simple and a “user error"

We tried to connect the website up to the wrong database. i.e. When we copied the database and moved it, we inadvertently copied the wrong database. This caused the above error due to the fact that the machinekey data in the web.config file was wrong for the database.

This caused the error 1310 to be thrown and the Application Pool associated with the new incorrectly setup site to stop.

The fix. 

Connect to the correct database!

Update

Further to this we encountered a really weird set of errors after this. Initially the error appears to be a connection issue. But then we started getting failings that would come an go.

Error logs showing plenty of Event ID 1310 but also in the DNN logs:

DotNetNuke.Services.Log.EventLog.DBLoggingProvider - System.Data.SqlClient.SqlException (0x80131904): Could not allocate space for object 'dbo.EventLog'.'PK_EventLogMaster' in database ‘bla' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.

 

   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)

 

   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)

 

   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)

 

   at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()

 

   at System.Data.SqlClient.SqlDataReader.get_MetaData()

 

   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption)

 

   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)

 

   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)

 

   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)

 

   at System.Data.SqlClient.SqlCommand.ExecuteScalar()

 

   at PetaPoco.Database.ExecuteScalar[T](String sql, Object[] args)

 

   at DotNetNuke.Data.PetaPoco.PetaPocoHelper.ExecuteScalar[T](String connectionString, CommandType type, String sql, Object[] args)

 

   at DotNetNuke.Data.SqlDataProvider.ExecuteScalar[T](String procedureName, Object[] commandParameters)

 

   at DotNetNuke.Data.DataProvider.AddLog(String logGUID, String logTypeKey, Int32 logUserID, String logUserName, Int32 logPortalID, String logPortalName, DateTime logCreateDate, String logServerName, String logProperties, Int32 logConfigID, ExceptionInfo exception, Boolean notificationActive)

 

   at DotNetNuke.Services.Log.EventLog.DBLoggingProvider.WriteLog(LogQueueItem logQueueItem)

 

ClientConnectionId:e495809e-60d5-44f2-b883-fe81fbe1126f

 

Error Number:1105,State:2,Class:17

The Problem

The issue turned out to be that the database was a legacy database we received from another host. They had defined a database limit size in the SQL database it’s self. This caused the database to strop responding to DNN in a way we had never seen. After some time, the maintenance would drop the size of the database just below the limit and the DNN site would fire up. Until it reached the SQL database limit again.

Not likely to be a problem for many people, but something to check in the SQL dates settings.

The fix update

Increase or remove the size of the SQL database limit.

Outlook 365 Keeps Prompting for Password After August 2017

Outlook 365 Keeps Prompting for Password After August 2017

3db989da d0d4 4210 b5ff f9975e6687dc

In August 2017 Microsoft released another version of Outlook for Office 365 for PC that caused a major problem for people connecting to Exchange 2016 servers. This problems is all to do with the AutoDiscovery setup that Outlook uses. Microsoft appear to have set outlook to use their Office 365 servers as an initial point of setup configuration regardless of how you have configured AutoDiscovery.

The bottom line is that outlook keeps trying to authenticate agains office365 and not your own server. While this is a known issue, as of January 2018 it has not been fixed in the next version of Outlook.

The Fix

There are two fixes, and either one should work. We suggest Fix 1

Fix 1

First one involves setting a registry entry on the computer experiencing the issue. To fix this issue, create a text file and copy/paste this text below.

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\AutoDiscover]
"ExcludeExplicitO365Endpoint"=dword:00000001

Then save it, and rename it as ExcludeExplicitO365Endpoint.reg and run it (this will import the applicable registry key). ONLY DO THIS if you are using an Exchange On-Premise account, and not a Office365 or hosted exchange account.

Ref: https://www.stephenwagner.com/2018/01/14/cannot-create-exchange-2016-account-office-2016-due-repeated-password-prompts/#comment-284518

Fix 2

The solution I've found to work and the only one to stop this annoying popup of "enter your password", is to downgrade to a lower version of office update.here is a script i wrote, in case you need to push this to several computers.

C:\Progr~1\Common Files\Microsoft Shared\officeClickToRun /update user updatetoversion=16.0.8326.2107 1>officec2rclient.exe

this will take your office 2016 to update 8326.2107 where this issue doesn't happen.nothing will show up on the screen, but give it about 10 minutes and restart the computer. check the control panel/ add-remove programs and make sure office is on the new (or actually old...) version.

Here is a link to some helpful information in running this update: https://support.microsoft.com/en-us/help/2770432/how-to-revert-to-an-earlier-version-of-office-2013-or-office-2016-clic

Should I Use KnowRoaming International Mobile Review

Know Roaming Review - Should I Use KnowRoaming Mobile 

Xknowroaming review 750x422 jpg pagespeed ic Hekhny1V49

In one word, NO.

But let me explain why we think the reviews we have read online don’t live up to our experience. 

Firstly, as someone who professionally travels the entire globe and who is a techno geek, data is one of the most important travel tools these days. To look up and book all sorts of things form AirBnB to Uber,, Google Maps and just staying in contact with loved ones.

Getting Data is really still a huge hassle after all these years. Blackberry had the right idea to provide unlimited global packages for their devices world wide, and I personally cannot wait for Elon Must to get his 4,425 satellites up and running giving global coverage of low orbit satellite based data services. I am surprised that Apple or Google etc have not jumped in and lined up the telcos who are still busy ripping people for global data. They will end up wishing they had global alliances once something else comes online. Anyway I digress.

KnowRoaming has a good idea. They tap into the alliance of roughly 50-60  normal countries that appear to be able to operate in the real world and have some reasonable deals. The countries are sort of the ones you would expect. Basically if the telcos operate in a fair and less regulated environment (read western civilised countries) then they are likely on the list. If the countries government or royal highness owns the telcos or chops the hands of thieves off, then they are probably not on the list. (Read 1/2 the world that operates in dictator chaos).

Among the plans is the All You can Eat $7.99 per day for unlimited data. This was particularly appealing to me as I am often in countries for a short period of time.

Mobile Sticker for Roaming

The device I took was the sticker that you put easily on your sim card that gives your extra function while away form your normal carrier. No problems with the sticker and applying it.

The KnowRoaming App and Service

The issues I have are with the KnowRoaming App. The app controls the management of data access while in other countries. The idea is that you power it up while in the roaming countries and select the plan you wish to use. The failures of the app are this.

1. Unintuitive not user Friendly. - The app needs to install profiles on the iPhone to set up local data access. This part I can handle. Installing profiles are like installing certificates on a phone. A little odd at first, but once you get the idea of it, then not to bad. But the really unfriendly part is that you activate data on the home screen, but the app then needs to download the local roaming profiles to get the plans available locally. At times the connection download rate to get this data is so bad that the app does not find the data you need. Then you are left with an activated connecting that is using your data at a huge rate, and charing you normal crappy connection rates because you have not activated the daily plan. On more than one occasion I used all my credit before I could get a daily rate activated.

Other times I activated the daily plan, only to instantly loose the connection for a period of time. Then to find out that the activation did not take and I was again using all my credit when connection returned.

2. Reliability - Very poor at best. Because of this switching of profiles and presumably the providers of choice in the countries being forced for connection on once activated. I often found I was in a location like an airport with great reception. As soon as I activated the mobile data in the KnowRoaming app, and turned the Roaming Data on in the phone settings, I lost my connection all together to the telcos. No signal. Frustrating as hell when you need to get something done.

3. Data Priority - As you would expect with data roaming services, the telcos in the country you are traveling will give you low priority on their networks for data. This is understandable and even though the services are 3G only and you are most likely connecting to 4 G capable networks, I did find that at peak times (like the time of day you would book an Uber, Taxi, Hotel or AirBnB.) The series is so slow that you can’t get anything done at all. Ping tests 100 times slower than normal connection. Can’t even get to a google home page. Totally useless.

4. Average support - While contacting support gets you reasonably quick responses via email. You do need to have data to get email. What’s APP is free data, which leads the question. Why not enable free data for their APP and offer in app communications. As it stands you need the App to work to get support on getting the App to work. Crazy right!

Support

On the two occasions that I contact support advising that my entire balance had been eaten up in a manner of minutes. I was once refunded the money when I advised that I was a new customer and just did not get the interface for the app to activate the daily plans. And in this I will restate that the App really is not user friendly at all. They really need to force choice options on you as you activate to say… hey use all your credit in minutes or using one of the normal persons options to roam all day. 

The other time I experienced the “There Goes All yYour Credit” in a few minutes issue. Was as a result of the loss of connection then subsequent re-connection unbeknown to me a short time later. So my phone sat doing what my phone does, downloading email etc. All the time I believed I had no connection and was waiting to get WiFI access to sort out why I had no carrier signal after activating data.

I contact support with this second credit suck, and they pretty much said.. “Yep there goes your money, here is how to top up again”. As if I would put another cent into a services that just sucked down every penny I just fed it and gave me nothing in return.

So in summary… Reasonable Process, Quick Response to Support, Very Average App, Very Unreliable, at times Unusably Slow, Average Support Response. Stay Away from KnowrRaming

Note that these are just my experiences and subsequently my opinion of the service. I probably may have had better experiences had I received better support the second time I had major credit suck. I do have work colleagues that use the services and sewer by it, but once bitten twice shy. They had the opportunity to turn me into a happy customer, and it was as simple as a “sorry, here is your credit back”.

How Install Disk Cleanup Tools Windows 2012 or Windows 2016

Install Disk Cleanup Tools Windows 2012 or Windows 2016 Server.

Installing the function to clean your disk, requires that you install the Desktop Experience module from the Windows Feature list. 

Install Disk Cleanup on Windows.png

1. Open a PowerShell with Administrator rights.

2. Exercute:

Import-Module ServerManager

Install-WindowsFeature Desktop-Experience

 

 

That’s it. A Reboot of the Computer is required.

Outlook Slow and Unresponsive wiht MAPI over HTTP to Exchange 2016

Outlook Slow and Unresponsive wiht MAPI over HTTP to Exchange 2016 Server

In our case the versions in question were found to be:

Outlook 2013 connecting to Exchange 2016 with MAPI over HTTP enabled.

Reported Problems

The user reported that outlook was slow to open email, and unresponsive with searching in outlook.

The CTRL right click on the Outlook connection icon (bottom right) showed the connection was made with HTTP

iMAP over HTTP

 

The Problem

It is reported that MAPI over HTTP which is a newer connection method of laterExchange servers and potential better and more reliable for devices connecting has some unreliabilities in some instances with earlier version of Outlook.

Our testing shows that later outlook versions and the Mac versions of outlook have no troubles at all.

The Solution

IN Exchange 2016 it is possible to disable MAPI for a users mailbox. The issue this may have is that they could have other more recent devices such as phones and tablets that are enjoying the advantages of MAPI over HTTP.  So rather than turning off MAPI for all their devices at the exchange server end. It is preferable to disable the connection on that users computer only.

This can be easily done using regedit.

Disabling MAPI over HTTP with Regedit

  1. Log on to the proxy client where you installed the agent.

    Use the credentials for the Windows account that you defined in the agent properties.

  2. In Windows on the client computer, click Start, and then type regedit in the Search programs and files box.
  3. Press Enter. 

    The Registry Editor appears.

  4. Expand HKEY_CURRENT_USER > Software > Microsoft > Exchange.
  5. Right-click Exchange, and then click New > DWORD

    A new DWORD entry appears in the right pane.

  6. Right-click the new DWORD entry, and then click Rename.
  7. Type MapiHttpDisabled.
  8. Right-click the MapiHttpDisabled entry, and then click Modify

    The Edit DWORD Value dialog box appears.

  9. In the Value box, type 00000001, and then click OK.
  10. Close the Registry Editor.
  11. Verify that the protocol has been changed to RPC over HTTP. 
    1. Restart Microsoft Outlook.
    2. Press Ctrl and right-click the Microsoft Outlook icon in the notification area at the far right of the task bar.
    3. Click Connection Status

      The Microsoft Exchange Connection Status dialog box appears.

    4. Verify that the value in the Protocol column is RPC/HTTP.
    5. If the value is HTTP, delete the Microsoft Outlook profile, and then recreate it.

Disable MAPI over HTTP using .reg file.

1. Download this file: MAPIoverhttp_disable.zip

2. Unzip the file

3. Double open the MAPIoverhttp_disable.reg file and it will add the above change for your.

Disabling MAPI over HTTP using Command Prompt.

1. Click Start RUN

2. Type CMD then hit ENTER.

3. Type or paste: REG.exe Add HKCU\Software\Microsoft\Exchange /V MapiHttpDisabled /T  REG_DWORD /D 0x1 /F
(Note that the above is one line that may wrap)

Disabling MAPI over HTTP using PowerShaell

We can retrieve the current configuration using the first two commands, whilst the third one disables MAPI/HTTP and the final command enables MAPI/HTTP:
Get-Item HKCU:\Software\Microsoft\Exchange
Get-ItemProperty -Path HKCU:\Software\Microsoft\Exchange -Name MapiHttpDisabled | select MapiHttpDisabled | Ft –AutoSize
New-ItemProperty -Path HKCU:\Software\Microsoft\Exchange -Name MapiHttpDisabled -PropertyType DWORD -Value "0x1" –Force
New-ItemProperty -Path HKCU:\Software\Microsoft\Exchange -Name MapiHttpDisabled -PropertyType DWORD -Value "0x0" –Force

(Note that the above are all one line that may wrap)

 

Testing When MAPI/HTTP Disabled

For reference, Outlook 2010 connection information is show.  Note that MAPI/HTTP is being used:

Outlook 2010 Connecting Using MAPI/HTTP

After disabling MAPI/HTTP using one of the above methods, reg.exe or PowerShell, we can then look to see how Outlook is connecting.  Note that you may have to wait for Outlook to perform an Autodiscover request and automatically update itself, or alternatively run a profile repair to force a full Autodiscover.  Deleting the Outlook profile would also force the change, but that is not recommend in production unless it is the last resort.  Deleting Outlook profiles causes OAB downloads, OST downloads, possibly adding PST files back into the profile and may also impact mobile devices.

In the below screenshot we can se that the client is now kicking it old skool.  The protocol type has changed, and there is now a proxy server specified. This was taken after restarting Outlook.

Outlook 2010 With MAPI/HTTP Disabled

 

Enabling Via Command Prompt

To allow MAPI/HTTP remove  the MapiHttpDisabled DWORD, or set it to a value of 0 as shown below:

REG.exe Add HKCU\Software\Microsoft\Exchange /V MapiHttpDisabled /T  REG_DWORD /D 0x0 /F

(Note that the above is one line that may wrap)

DNN – Hide a Page from the Menu

To Hide a DNN Page from the Menu

Note: This page will still be available to those who know the URL of that page (if for example you had put the page in a news letter).

Select Edit / Page Settings

Screenshot 2016 03 15 06 26 56

 

Page Details / Unselect the Include in Menu Option

Screenshot 2016 03 15 06 29 26

Update Page

The Page will no longer appear in the menu system. It can still be hit with the permissions that have previously been set.

Alternatively - To Change Permissions on the page to hide and stop access: http://www.interactivewebs.com/blog/index.php/general-tips/dnn-change-permissions-on-a-page-to-stop-users-being-able-to-access-the-page/

 

 

DNN – Change Permissions on a Page to Stop Users Being Able to Access The Page

To Stop users (Either members or visitors) from being able to access a page on the DNN Site.

Select Edit / Page Settings

Screenshot 2016 03 15 06 26 56

Select the Permissions Tab

Screenshot 2016 03 15 06 33 01

Uptick the All users View Settings. With no view pages permissions set. No users other than the Default Administrator settings will be able to visit the page.

Update Page

Note This hides the page from users in the menu too. Alternatively you can just hide the page from the menu, but still allow people how know where the page exists to still access it by following this post:http://www.interactivewebs.com/blog/index.php/general-tips/dnn-hide-a-page-from-the-menu/

 

Setting up CRM 2015 on Windows 2012 R2 and SQL 2014 Stand Alone

Setting up CRM 2015 on a New Virtual Windows 2012 R2 with SQL 2014

Install the Following Components

  • Services
  1. Indexing Service (Windows Search Service
  2. IIS Admin
  3. World Wide Web Publishing
  • Windows Data Access Components MDAC 6.0
  • Microsoft ASP.NET

 

Windows Search Service

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

Windows 2012 Add Roles and Features

 

Next

Screenshot 2015 03 22 16 15 03

 

Next

Screenshot 2015 03 22 16 15 42

 

Next

Screenshot 2015 03 22 16 16 41

 

Next (without selecting anything)

Screenshot 2015 03 22 16 17 44

 

With the Features, select Windows Search Service - Next

Screenshot 2015 03 22 16 19 46

 

Select Install

Windows Search Service Feature

 

Select Close

Screenshot 2015 03 22 16 22 15

 

Run through the process again 

Click Add Roles and Features

Windows 2012 Add Roles and Features

 

Next

Screenshot 2015 03 22 16 15 03

 

Next

Screenshot 2015 03 22 16 15 42

 

Next

Screenshot 2015 03 22 16 16 41

 

Next (without selecting anything)

Screenshot 2015 03 22 16 17 44

 

This time select the Web Server (IIS)

Screenshot 2015 03 23 18 09 39

When prompted select Add Features

Screenshot 2015 03 23 18 08 42

Select Next

Screenshot 2015 03 23 18 13 00

Next

Screenshot 2015 03 23 18 13 15

Next

Screenshot 2015 03 23 18 13 19

Next

Screenshot 2015 03 23 18 13 36

Close

 

Installing SQL Server

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 2013 SQL 2012 Requirements

 

Additional IIS Feature to Add for IIS

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       

  • Click Next for Role-based or featured-based installation       
  • Select Server Roles       
  • Expand Web Server (IIS) role     
  •  Under Performance check the option for Dynamic Content Compression

IIS Dynamic Compression Feature

Click Next

This ensures that you can enable dynamic compression after install to ensure that performance is best.

 

 

 

 

 

 

Windows 2012 R2 C:\Program Files (x86)\PHP\v5.6\php-cgi.exe – The FastCGI process exited unexpectedly PHP

The FastCGI process exited unexpectedly - Trying to run PHP on IIS 8.0

This problem has been talked about extensively around the forums, but no one is being clear on how to fix the problem. The issue first appeared after installing new Windows 2012 R2 Release.  after using  the Windows Web platform installer 5.0 to install  the framework PHP 5.6.0 and I might add when we tested on PHP 5.5 .11, a simple test page return the error: C:\Program Files (x86)\PHP\v5.6\php-cgi.exe - The FastCGI process exited unexpectedly

The Solution

You need to install the: Visual C++ Redistributable for Visual Studio 2012 Update 4  32-bit version.  and it should be noted that even if your operating system is a 64-bit operating system, you must install the 32-bit version  as PHP does not run in 64 bit.

 A download link is here: http://www.microsoft.com/en-us/download/details.aspx?id=30679

Select the download button

FastCGI Process exited unexpectedly

 

Select the 32 bit version or x86

Screenshot 2015 03 23 00 36 43

Screenshot 2015 03 23 00 37 01

 

You are done!

Screenshot 2015 03 23 00 37 10

Test your PHP and you should be good to go.

Catalook Credit Card Dropdown Expiry Year

Catalook Credit Card Dropdown Year

We experienced a problem with the store checkout only listing a creadit card expiry date up to 2015 

Thus the drop down selector in the Credit Card field for expiry date would not allow years fat enough into the future that the customer could select the correct expiry date.

Catalook Credit Card Dropdown
The solution we found was this:


Navigating to the "Your Cart" module. You can do this by login in as an admin (not host) and buying a product. When it takes you to the cart module...
Select Edit Skin from the module menu.
Grab the code there, and paste into notepad etc. And look to the code that looks like this.  
ListItem Value="09" Selected="True">2009
ListItem Value="15">2015
ListItem Value="16">2016
ListItem Value="17">2017
ListItem Value="18">2018
ListItem Value=“19">2019
ListItem Value=“20">2020
Make it look like this exactly for the update at this time.

This will give you a larger future expiry date.

CRM 2013 Reporting is not enabled Message in CRM Deployment Manager

You Receive the Message “Reporting is not enabled"

And as the name suggests, this is because you have not installed the CRM Reporting feature. To Install the CRM 2013 Reporting Extension

Screenshot 2014 08 03 00 27 58

Add the SQL Server Data Tools option to the SQL 2012 server.

Screenshot 2014 08 03 00 29 19

Add features

Screenshot 2014 08 03 00 31 02

Select SQL Server Data Tools

Screenshot 2014 08 03 00 31 33

Next Next Install Etc till you are all done.

Install the CRM Report Authoring Extensions

D:\BIDSExtensions\i386\Setup\BIDSExtensions.exe

Following the standard setup process, then..

Install the Reporting Extensions

D:\Server\amd64\SrsDataConnector\SetupSrsDataConnector.exe

That’s it. You now will have the message from the Deployment Manager removed, and the necessary reporting Extensions installed.

CRM 2013 splash screen crash on Setup DVD / ISO

CRM 2013 splash screen crash on Setup DVD / ISO

After so many years, with the Splash screen crash of CRM 2011, the boys at Microsoft have not bothered to fix that problem. You start the screen

Screenshot 2014 08 03 00 16 22

Then before long you see this.

Screenshot 2014 08 03 00 17 03

Search around the net, and you find a bunch of old data relating to CRM 2011 and the same problem. Some suggestions are to uninstall various version of IE (The worlds Words Browser) or other similar crap. Not really much help when you are on a Windows 2012 R2 server with the newest release of CRM install ISO. Note: This is the sort of stuff I hope the new CEO will fix one day!

Other Solutions incorrectly reference the files to install from.

The Solution

These are the correct locations for CRM 2013:

  • Install Microsoft Dynamics CRM Server[Drive]:\Server\amd64\SetupServer.exe
  • Install Microsoft Dynamics CRM Report Authoring Extension[Drive]:\BIDSExtensions\i386\SetupBIGSExtensions.exe
  • Install Microsoft Dynamics CRM Reporting Extensions[Drive]:\Server\amd64\SrsDataConnector\SetupSrsDataConnector.exe
  • Install Microsoft Dynamics CRM for Outlookx86: [Drive]:\Client\i386\SetupClient.exex64: [Drive]:\Client\amd64\SetupClient.exe
  • Install Microsoft Dynamics CRM Email Routerx86: [Drive]:\EmailRouter\i386\SetupEmailRouter.exex64: [Drive]:\EmailRouter\amd64\SetupEmailRouter.exe

The trust relationship between this workstation and the primary domain failed Windows 2012 R2 Hyper-V snapshot

The trust relationship between this workstation and the primary domain failed Windows 2012 R2 Hyper-V

'Screenshot 2014 08 02 23 22 38

After working with Hyper-V and Snap shots, you may find that a previously working domain member machine gets this error message. This is because the Domain Controller will automatically update passwords of Machine Accounts every 30 days, and a restored snapshot may not match the new pass.

The solution

  1. On the effected client machine open PowerShell
  2. Run the following command “Reset-ComputerMachinePassword” or specify the credentials switch if the account your running PowerShell with doesn’t have the correct AD perms for the CMDlet “Reset-ComputerMachinePassword –credential Domain\Adaccount” (You will be prompted for the domain password).
  3. After running this give the client machine a restart

After Reboot, the server will function correctly.

CRM 2013 IFD An error occurred An error occurred. Contact your administrator for more information.

CRM 2013 IFD An error occurred An error occurred. Contact your administrator for more information. 

When trying to setup up IFD with CRM 2013, we kept getting the error:

An error occurred. Contact your administrator for more information.          

  • Activity ID: 00000000-0000-0000-0300-0080030000ed
  • Relying party: CRM IFD Relying Party
  • Error time: Sat, 02 Aug 2014 08:32:56 GMT

 

Little or no additional information in the Event Log:

We had attempted to setup IFD with ADFS 3.0 and at the time there was very little additional information available for this setup. The MSDN blog that we followed was good, but for ADFS 2.1.

The Solution.

ADFS 3.0 Extra Steps

To say these steps are “fucking important” is to under estimate the value I place in the 2 weeks it took me to resolve the ADFS 3.0. 

Enable Forms Authentication

AD FS in Windows Server 2012 R2, forms authentication is not enabled by default.

1. Log on to the AD FS server as an administrator.

2. Open the AD FS management console and click Authentication Policies.

3. Under Primary Authentication, Global Settings, Authentication Methods, click Edit.

4. Under Intranet, enable (check) Forms Authentication.

Screenshot 2014 08 02 18 06 40


Add the ADFS server to the Local intranet zone.

1. In Internet Explorer, click Tools, and then click Internet Options.

2. Click the Security tab, click the Local intranet zone, and then click Sites.

3. Click Advanced.

4. In Add this website to the zone, type the URL for your AD FS server, for example, https://sts1.contoso.com.

5. Click Add, click Close, and then click OK. 

6. Select the Advanced tab. Scroll down and verify that under Security Enable Integrated Windows Authentication is checked.

7. Click OK to close the Internet Options dialog box.You will need to update the Local intranet zone on each client computer accessing Microsoft Dynamics CRM data internally. To use Group Policy to push this setting to all domain-joined internal client computers do the following.

Mars Edit can't upload images to WordPress on IIS

MarsEditIcon 

Having Troubles Uploading images to Wordpress hosted on IIS

If you are like me and enjoy a Mac, and Wordpress, then you have probably discovered MarsEdit. We were experiencing problems uploading images to our WordPress blog.

Upload File Error
Can’t do upload file for “blog name" because the server reported an error. The server returned an unexpected response code: 413.

WordPress Upload File Permissions on IIS

You upload an image in WordPress and either you get an error or the image will upload, thumbnails would work but the actual image would not have read permissions.


If you can’t upload an image at all, it’s probably because you need to give the IUSR account Read/Write/Modify permission on your wp-content folder.  This will allow you to upload, and do the WordPress & plugin updates.

IIS WordPress File Upload Permissions

Alos, you may you need to do is give the IIS_IUSRS group Read permissions on your “C:\Windows\Temp” folder.

Make sure to notice that the two permission changes you make are not for the same user/group.   Give IUSR permissions on your wp-content folder and IIS_IUSRS permissions on your Windows temp folder.


Note: If you have edited your php.ini file and change the upload temp directory then you will need to give IIS_IUSRS group read permissions on that folder instead.

IISWordPressIIS_USERS

That should be about all that is required to fix the issue in IIS.

DragonDictate for Mac 4.0 and VMware fusion lower case text only

dragondictate

I have recently upgraded to Dragon dictate for Mac 4.0 and was surprised to find that when dictating into a virtual machine running under VMware fusion, that the dictation would only produce lowercase text. This is particularly annoying when you get to something like? That requires an uppercase press. Instead you end up with /

While this is not a complete showstopper, as it is possible to dictate into a Mac notepad and then copy and paste the text directly into the VMware fusion instance, this still frustrating to note that this area has been around since version 3.0 at least.  I would have expected had some attention may be paid to this.

 If anyone has any information that is helpful with this I would appreciate you posting it.

Object reference not set to an instance of an object. at DotNetNuke.Entities.Users.UserInfo.GetProperty

DNN Error Object reference not set to an instance of an object. at DotNetNuke.Entities.Users.UserInfo.GetProperty

After noticing a few strange things with our website, and seeing a number of users requesting access, but not receiving their authentication email. We noticed this error when we manually authorised an account.

Message: DotNetNuke.Services.Exceptions.ModuleLoadException: Object reference not set to an instance of an object. ---> System.NullReferenceException: Object reference not set to an instance of an object. at DotNetNuke.Entities.Users.UserInfo.GetProperty(String propertyName, String format, CultureInfo formatProvider, UserInfo accessingUser, Scope currentScope, Boolean& propertyNotFound) at DotNetNuke.Services.Tokens.BaseCustomTokenReplace.replacedTokenValue(String strObjectName, String strPropertyName, String strFormat) at DotNetNuke.Services.Tokens.BaseTokenReplace.ReplaceTokens(String strSourceText) at DotNetNuke.Services.Tokens.TokenReplace.ReplaceTokens(String strSourceText) at DotNetNuke.Services.Tokens.TokenReplace.ReplaceEnvironmentTokens(String strSourceText, IDictionary Custom, String CustomCaption) at DotNetNuke.Services.Localization.Localization.GetSystemMessage(String strLanguage, PortalSettings portalSettings, String messageName, UserInfo userInfo, String resourceFile, ArrayList customArray, IDictionary customDictionary, String customCaption, Int32 accessingUserID) at DotNetNuke.Services.Localization.Localization.GetSystemMessage(String strLanguage, PortalSettings portalSettings, String messageName, UserInfo userInfo, String resourceFile, ArrayList custom, String customCaption, Int32 accessingUserID) at DotNetNuke.Services.Mail.Mail.SendMail(UserInfo user, MessageType msgType, PortalSettings settings) at DotNetNuke.Modules.Admin.Users.ManageUsers.MembershipAuthorized(Object sender, EventArgs e) --- End of inner exception stack trace ---Message: DotNetNuke.Services.Exceptions.ModuleLoadException: Object reference not set to an instance of an object. ---> System.NullReferenceException: Object reference not set to an instance of an object. at DotNetNuke.Entities.Users.UserInfo.GetProperty(String propertyName, String format, CultureInfo formatProvider, UserInfo accessingUser, Scope currentScope, Boolean& propertyNotFound) at DotNetNuke.Services.Tokens.BaseCustomTokenReplace.replacedTokenValue(String strObjectName, String strPropertyName, String strFormat) at DotNetNuke.Services.Tokens.BaseTokenReplace.ReplaceTokens(String strSourceText) at DotNetNuke.Services.Tokens.TokenReplace.ReplaceTokens(String strSourceText) at DotNetNuke.Services.Tokens.TokenReplace.ReplaceEnvironmentTokens(String strSourceText, IDictionary Custom, String CustomCaption) at DotNetNuke.Services.Localization.Localization.GetSystemMessage(String strLanguage, PortalSettings portalSettings, String messageName, UserInfo userInfo, String resourceFile, ArrayList customArray, IDictionary customDictionary, String customCaption, Int32 accessingUserID) at DotNetNuke.Services.Localization.Localization.GetSystemMessage(String strLanguage, PortalSettings portalSettings, String messageName, UserInfo userInfo, String resourceFile, ArrayList custom, String customCaption, Int32 accessingUserID) at DotNetNuke.Services.Mail.Mail.SendMail(UserInfo user, MessageType msgType, PortalSettings settings) at DotNetNuke.Modules.Admin.Users.ManageUsers.MembershipAuthorized(Object sender, EventArgs e) --- End of inner exception stack trace ---

The account was authorised, but DNN threw this error.

The error was traced back to the token function of the automatic email messages in DotNetNuke. Email messages were not being generated, and no users were being authorised. 

The long and the short of it was that the defined Administrator account was inadvertently removed from the site. This in turn stopped DNN from being able to generate any email messages with tokens for the Admin account email address.

The fix

was as easy as putting an admin account back into the site.

Windows 2008 Server Blocking RDP IP Address Hacks

Find out the IP address of the Prick who is trying to hack your server.

Go to the Windows Event Log, and select Security. Look for the Audit Failure event and you will see the IP there.

image

Setup a custom rule in Firewall With Advanced Security to block this incoming IP from attempting a hack.

Start -> administrative tools > windows firewall with advanced security.

Select Inbound Rules / New Rule

image

Select Custom / Next

image

Select All Programs / Next

image

Leave Default / Next

image

Leave the Local IP set to ANY, but Change the Remote IP to ADD

image

Ensure that you have added the prick who is hacking you, then Next

image

Select Block the Connection / Next

image

Leave Default / Next

image

Give the rule a name / Finish

image

.zip files from Mac OS show up as green/encrypted

Green files and folders on Windows 7 indicate they are encrypted.

Usually this is a function of a program that will make these files encrypted for a reason. Security is usually the reason. But…

An interesting little bug in the process of creating a .zip file on a mac and moving it over to a Windows computer.

When a .zip file is created according to standards for .zip files found here:

http://www.pkware.com/documents/casestudies/APPNOTE.TXT

They specify that .zip archives include a tag informing about itself to the program trying to decompress the archive. This tag information is known as the “version made by” and as the name suggest, it would tag information about the program version of .zip and the files system in use.

 0 - MS-DOS and OS/2 (FAT / VFAT / FAT32 file systems)
          1 - Amiga                     2 - OpenVMS
          3 - UNIX                      4 - VM/CMS
          5 - Atari ST                  6 - OS/2 H.P.F.S.
          7 - Macintosh                 8 - Z-System
          9 - CP/M                     10 - Windows NTFS
         11 - MVS (OS/390 - Z/OS)      12 - VSE
         13 - Acorn Risc               14 - VFAT
         15 - alternate MVS            16 - BeOS
         17 - Tandem                   18 - OS/400
         19 - OS/X (Darwin)            20 thru 255 - unused

When the Mac system encrypts the files, it marks them with the attribute of being UNIX based files. Correct considering the Mac operating system is based on UNIX.

The problem arises at the Windows end. Because Windows is created by the most arrogant computer company in the world, it does not recognise that a .zip file could have been created with a computer that is not running Windows. It fails to correctly see the flag as UNIX and marks the files as Encrypted.

Leaving Files Encrypted

If the files are left as encrypted, you may find that there are problems if the files are shred on a network drive etc. Taking ownership will not change this flag, and resetting permissions does nothing.

The Easy Fix – Remove Encrypted Tag

Removing the incorrect Encrypted Flag on a green file in Windows 7, or Windows Server is really easy. Right click the file or files (holding the shift key to select multiple folders and files) then Click: Properties / Advanced / Un-tick the Encrypted Option

 

That’s about it. All fixed.

Internet Explorer will not display some JPG Red X

A jpg image opens in Firefox but not Internet Explorer

Question

A jpg image opens in Firefox but not Internet Explorer.

Answer

Microsoft Internet Explorer 8.0 dropped support for jpeg images saved as CMYK and now only supports images saved in RGB mode. Below is an example and easy way to verify this issue. In the below example, we have two images; one saved in CMYK and the other saved as RGB.

CYMK Image
CYMK example image
RGB Image
RGB example image

If this issue exists, the CMYK image will appear as a red X or broken image in Internet Explorer. However, opening this page in Chrome or Firefox should show both images. If both images are visible to Internet Explorer, this is not the issue with your version of Internet Explorer.

Out suggestion would be to use just about any other browser that IE 8. Update to Chrome or Firefox and use that browser.

Outlook 2013 Ribbon Keeps Hiding in Office 365

image

After playing around with the new (totally disappointing) Outlook 2013 I found that the ribbon would keep hiding.

While that is annoying enough and I wanted to turn it back to how it was by default, what was really ticking me off was that someone else inadvertently made this happen while on my computer and could not tell me what they have done to set it that way.

So I set about working it it.

I couldn’t with out help.

So I set to Google for assistance. Found nothing, hence I’m writing this.

Steps

Click a Message in your mail view.

Click HOME (the ribbon should appear)

image

Then on the far right of the ribbon, is a little drawing pin icon. In this location

image

That when clicked will turn to the indication above. This pins the ribbon in place.

For the record… I am disappointed by the new Office. There is nothing new that impresses me after 3 years of additional development time, and plenty of little traps like this that just suck time and annoy you!

Watching Microsoft fall from grace by their own hand is slow and painful for all of us, although the future looks a little brighter sinace the removal of Blamer.

Looking for an Office 365 Website? Then InteractiveWebs has a Small Business Website for Office 365 for you!

IE FTP Your current security settings do not allow you to download files from this location.

image

Problem

while accessing Windows 2003 server today I experienced a problem with the system reported to me: Your current security settings do not allow you to download files from this location.

And gave me the following error window and security alert:

image

Knowing that Internet Explorer is too stupid to know that even though I have the username and password to connect to an FTP site , I don't have the necessary security permissions to download files from the FTP site. as dumb as this may seem it is the default security settings are Internet Explorer early versions.

The solution

In this case the solution is actually quite easy.

1. Open IE

2. Open Tools > Internet Options > Security

3. Click on Trusted Sites then the sites button below

4. Enter the URL of the site you're downloading from and click add

image 

How to discover your Facebook ID

Discover Your Facebook ID

image

There is one really easy and surefire way to discover your Facebook ID.

Navigate to this URL: https://graph.facebook.com/interactivewebs

and replace in the URL interactivewebs with your own Facebook username.

https://graph.facebook.com/yourusername

When the page loads, you will see something like this:

{
   "id": "100000310593653",
   "name": "David Finley",
   "first_name": "David",
   "last_name": "Finley",
   "link": "http://www.facebook.com/interactivewebs",
   "username": "interactivewebs",
   "gender": "male",
   "locale": "en_US"
}
 
Your ID are the numbers in the inverted commas that follow the ID.line . so Sn this case. th TIT would be: 100000310593653

How We Setup–The History of The Internet

This is how we setup a Website for a School Project about The History of the Internet.

We first researched the hits for “The History of the Internet” as a search term in Google.

image

What we found is that there are 450,000 searches each month for this term. We hope to capture some of that traffic.

1. Registered the Domain Name: the-history-of-the-internet.com

We did this at: http://domains.interactivewebs.com/

image

So we registered the domain name, and set Domain Name Servers to:

fserver2.fserver2.com

fserver3.fserver3.com

image

 

2. Next we setup DNS servers for the domain name.

image

and pointed the www.the-history-of-the-internet.com to the weebly website IP address that we have been assigned.

 

3. Then we updated the site settings in Weebly to accept the new domain name.

image

4. Then we setup a Google Analytics tracking code.

image

and pasted that to the Weebly settings so that every page would be tracked.

5. Then we added meta tag and page description data to every page of the website.

image

6. Next we blogged the site and linked to the URL, in an attempt to bring the page ranking and linking index up for the domain: http://www.the-history-of-the-internet.com/

7. Once the site has some hits from the 450,000 lookups each month, we plan to introduce some paid advertising to help cover the cost of the domain name registration.

Understanding Web-Safe Fonts / Web Friendly Fonts

imageWe have often receive lots of questions about Web-safe fonts, or web friendly fonts. We have products that work with technologies like Microsoft Word, and publish back to websites like DotNetNuke. (DNN Word Editor)

The issue is that not all fonts will work on all browsers on all computers. Here is the reason why.

Web-Safe Fonts

There are an awful lot of fonts in the world! For years, no doubt, you’ve been using a ton of them in word processing documents, party invitations, banners, etc. But have you ever noticed how few of them are used on the web?

There’s a really good reason for this. When a web page loads, the browser is told to write text onto the screen using a specified font—one that is stored on the computer that the browser is running on. Therefore, if the web page’s code is calling for a font that a user does not have installed on their computer, it won’t show up! What that person will instead see is a default font, which might look a little ugly.

Now you might be wondering why this will happen so often if there are so many fonts installed on your computer. Well, here’s the problem: the two most widely-used operating systems—Windows and Mac OS X—each come installed with a different set of fonts. Awesome!

To illustrate this point, here’s where the fonts are stored in Windows 7:

image

And here’s where they’re stored on Mac OS 10.6:

image

Right away, we can see that only one of the displayed fonts overlaps: Arial. None of the Calibri orCambria fonts are available on the Mac, and the Mac has at least a dozen just on this page that aren’t available in Windows!

In fact, between these two systems, there are only ten fonts that overlap:

image

Those fonts that fall into that middle area, covered by both operating systems, are what we callweb-safe fonts. If you use Calibri on your webpage, Mac users won’t see it; if you use Andale, Windows users won’t see it; but if you use Georgia, you can rest assured that users of both systems will see the it.

Now there’s a bit of grey area here. Users of older operating systems don’t have some of these fonts we’ve declared web-safe. For example, Windows XP users don’t have Palatino or Trebuchet MS. Even worse, users of Android mobile phones don’t have any of these fonts.

So to be clear, there are only five fonts that are considered universal:

  • Arial
  • Courier New
  • Georgia
  • Times New Roman
  • Verdana

Feel free to use these fonts all you want! Even if you dug up that old Packard Bell you had back in 1997 and it didn’t explode when connected to the modern web, you’d be able to see these fonts rendered as intended. Those Android users will just have to fight for themselves.

Web Safe Fonts Table

image

*The green marks show very common fonts, the yellow shows not so common but all are generally accepted as web safe.

So, what happens when the font fails?

Your text will still be visible, but the browser will use whatever default font it supplies for situations like this. This means that you may have intended to use a cute, scripty font, but what you get is

Your text typed in a regular serif font.

This is good because your content still goes through, but your design might be compromised. Therefore, you should always specify fallback fonts and a category that the font falls into. Let’s say that you want to use Helvetica, but you’ll settle for Arial. Since both of these fonts are considered to be sans-serif fonts, you can write a CSS declaration like this:

{ font-family: Helvetica, Arial, sans-serif; }

The browser will first try to use Helvetica, and if it’s not installed, it’ll attempt to use Arial. If even that font is not available, it’ll use whatever default sans-serif font the browser likes, but at least it’ll be the correct type of font!

For more information about coding fallbacks, alternative methods to using non-web-safe fonts, and everything typography related, you can pick up a copy of our Web Typography Handbook. It’ll tell you everything you need to know.

Bing Ajax Control over HTTPS or HTTP Secure SSL

image

Today we updated some code in our Contact Details module for DotNetNuke.

The module makes it easy to add your contact details to a page in DNN.

There is a map control function that uses Bing Maps that can be seen in the demo here: http://www.interactivewebs.com/contactdetails/Demo.aspx

We have updated the module today to support the use of SSL or https connections to the page that contains the module.

How we did this

So here are the two ways to add the Bing Ajax control to your page in HTTP or HTTPS:

HTTP:

HTTPS:

http://”a

Now on the HTTPS version notice I changed the URL to start with HTTPS, this is what pulls from the secure site over at the good Bing folks. Also notice I added the “s” parameter and set it to 1, default is 0, this tells the Bing API to get the image tiles for the map from HTTPS.

Why? you ask.

Well it seems that the API determines what protocol to use for JavaScript and other parts from the document.location.protocol, however when it comes to the map tiles it looks to a global setting that is set based on the parameter being passed.

Captivate SCORM reporting completed but not passed

image

Captivate SCORM Problems

We have been playing in depth lately with some some of the Captivate SCORM outputs in an effort to better understand the SCORM Compliance and where Captivate falls down in this area. What we have found is very interesting and needs to be explained in detail to understand.

The Problem

Until recently, anyone who wanted to author SCORM-compliant content had few choices. Not many authoring programs existed and the technical knowledge to create compliant content was and, in fact, still is beyond the reach of most training developers. Now there are many affordable, easy to use content authoring programs to create SCORM-compliant content that can be deployed to learning management systems (LMS). Adobe, a leader in the multimedia authoring and programming industry, has recently thrown their hat into the ring and released Adobe Captivate – a SCORM-compliant authoring tool that includes screen capture, simulation, automated testing and more.

Adobe Captivate and LMS Software Working Correctly

When exporting content from Adobe Captivate, you have the option of making your package SCORM 1.2 Compliant. Specifics of the SCORM specification could fill an entire book (in fact, it does!), so let’s just say that SCORM defines what must be included in a content package (certain files which contain certain information in a certain format) and the methods that the content package must use to communicate information (student name, score, etc.) to and from the LMS. The idea is that content authoring programs and learning management systems would all be programmed to comply with the spec and therefore be compatible with each other. Unfortunately, reality has not lived up to the vision.

The SCORM 1.2 specification is long, open to some interpretation and not always logical. Developers have had to make some assumptions and, at the same time, had to predict and hope that other developers made the same assumptions! Our experience with the workings of Adobe Captivate and the development or our own SCORM-compliant LMS has given us some insight to help you get the most out of Adobe Captivate and your LMS – even if it’s not our LMS! Note that we are only focusing on SCORM 1.2. The SCORM 1.3 specification was recently released, however most learning management systems and authoring tools, even those recently released, still support SCORM 1.2 and rightfully so.

Problem 1 - Setting Captivate to be SCORM 1.2 Compliant

If you export a Captivate package that does not have any graded questions in it, it will not be SCORM-compliant. I don’t mean that it just won’t track because it has no grade to send; I mean it is not compliant. In tracing method calls from Captivate lessons, we’ve found that a lesson with no questions will not make the required call to the LMS to initialize itself upon start-up. It will make the finalize call upon exit, however any compliant LMS will throw back an error when this happens. The spec dictates that a content package must initialize itself before it can finalize itself. Makes sense, right?

A tangential problem to this is that a lesson with no questions (even if the correct initialize and finalize calls are made) has no way to tell when it’s been completed, so it does not send that information to the LMS either. This secondary problem is not an issue of compliance as the SCORM specification does not require this information to be sent, but more an issue of usability. What’s the point of making a SCORM-compliant lesson and loading it into an LMS if you never find out when your users have completed it?

Solution 1 - Captivate SCORM Solved

The resolution to both these problems is easy – just make sure that you have a graded interaction in your lesson. It can be an interaction that is actually presented as such or even a button or hot spot that you are sure your users will click while viewing the lesson. The possibilities here are endless, so be sure to test your solution, but the bottom line is that there needs to at least one graded interaction in your lesson.

Problem 2 – Passing the Proper Lesson Status Value

image

Adobe Captivate lets you choose whether to report ‘pass/fail’ or ‘complete/incomplete’ values for lesson status, but this is not an arbitrary choice. The spec dictates that this shall be determined by the lesson after querying the LMS and deciding based upon the response it receives.

When publishing with Captivate, if you select complete/incomplete, and the user fails or fails to finish the lesson, the value of ‘incomplete’ will be reported to the LMS. In the event that the user completes or passes the lesson, the value of ‘complete’ will be reported to the LMS. Likewise, if you select pass/fail, then the value of ‘pass’ will be used instead of ‘complete’ and the value of ‘fail’ will be used instead of ‘incomplete’.

Additionally, Captivate lessons never query the LMS for the value of ‘credit’, which is the element that the lesson should be using to determine whether to use ‘complete/incomplete’ or ‘pass/fail’.

Problem 2 – Solution to Captivate Lesson Status Value

Solving this problem may or may not even be necessary – it’s a rather minor issue. The best thing to do is make sure that you coordinate the credit setting you use in the LMS with the lesson status value you select here. Lessons that are for credit should use ‘pass/fail’ and lessons that are not for credit should use ‘complete/incomplete’. However, one thing to note, and this takes us indirectly to Problem #3 and beyond, is that the spec dictates that the LMS revaluate the score and change this value if you have set a mastery score. We’ll come back to this when we get to Problem #4.

Problem 3 – Passing Score in the SCORM Format

The ‘Publish’ interface in Adobe Captivate lets you choose whether to report score as a raw value or as a percentage while the spec dictates that this value must be ‘normalized between 0 and 100′ (meaning it must be a percentage score). When you choose to report this value as a raw score, your lesson is not compliant.

Adobe tells us that they put this option for a very specific reason. The spec defines 3 values relating to score and all shall be normalized between 0 and 100 – minimum score, maximum score and what they call raw score (oddly enough, the spec calls it ‘raw score’ and at the same time dictates that it be normalized – no wonder everyone is confused!). Logically, since they are required to be normalized between 0 and 100, minimum score would always be 0 and maximum score would always be 100 so why even use them? Because of this confusion, Adobe decided to allow the content author to decide whether to report score as raw or normalized.

The problem occurs when you choose to report score as raw and then load your content into an LMS that has been implemented according to the SCORM spec because it will expect to receive score normalized. Confusion ensues!

You create a Captivate lesson and choose to report score as a raw value. Your lesson has 5 questions and your user gets them all correct. Your lesson is going to report ’5′ as the score and a compliant LMS is going to interpret this as 5%. Of course, your lesson should also report a lesson status of ‘complete’ or ‘passed’ (see problem #2) which will truly confuse your user when they look at their stats and see that they passed/completed a lesson with a score of only 5%!

Problem 3 – Solution to Passing SCORM Score Correctly

This is an easy one. Unless you are certain that your LMS implements score as a raw value, always select ‘percentage’ to ensure that your lesson is compliant.

Problem 4 – Making it all Work

image  image

Take a deep breath, because problem #4 might get a little confusing. The SCORM specification instructs the LMS to change the lesson status (the same value discussed in problem #2) when certain conditions apply. When this happens, the LMS shall use the score to decide how to change the lesson status value. If you remember though, from problem #3, you may be reporting score as a non-compliant raw value, so the LMS may change the lesson status based on bad information.

To get a better understanding of this, let’s introduce mastery score. You set the mastery score by clicking the ‘Manifest’ button on the Publish Interface. mastery score is value stored in the manifest file that is included in the content package you load into the LMS. The LMS reads this value and stores it with the lesson. If you notice, Captivate instructs that this value should be between 0 and 100, or normalized.

Now the SCORM specification instructs the LMS that if mastery score is set, the lesson is being taken for credit and the lesson status is not ‘incomplete’, the LMS shall change the lesson status to the appropriate value (complete, incomplete, pass or fail) by comparing the score reported from the lesson and the mastery score that is defined in the manifest. This occurs even if the lesson has already passed a value for lesson status.

The first thing to notice is that you probably should set the mastery score to the same value that you set passing score. That way, if the LMS re-evaluates the lesson status, it will use the same value as the passing score that the lesson itself does.

Now let’s refer back to Problem #3. You had the option of reporting score as a raw value. If you chose that option, when the LMS performs this re-evaluation of lesson status, it is going to compare a raw score to the normalized mastery score. Since one value is normalized and the other is not, it should be clear that you will have some unexpected results from this.

Example

You create a Captivate lesson with 20 questions. You choose to report score as a raw value (non-complaint per Problem #3, but Captivate lets you do it), choose to use ‘pass/fail’ for lesson status, enter a mastery score of 80% and enter a passing score of 80%. Your user gets 17 questions correct.

When the lesson finalizes, the lesson reports ‘pass’ to the LMS for lesson status and ’17′ for score. Everything looks good until the LMS sees that there is a mastery score and therefore it must re-evaluate the lesson status. The LMS looks at score (’17′) and sees that it is less than mastery score (’80′), so it changes lesson status to ‘fail’. In fact, a lesson created with these settings will always have its lesson status re-evaluated to ‘fail’ by the LMS because even a perfect raw score (’20′) will always be less than the mastery score (’80′).

The root of the problem is that Captivate prompts you to enter mastery score normalized, but gives you the option to report score as a raw value. They need to be on the same scale for the re-evaluation by the LMS to work properly.

Solutions

Solution 1 - Don’t enter a mastery score. By doing this, the LMS will not re-evaluate the lesson status and you avoid the problem altogether. But don’t forget about Problem #3 and its solution.

Solutions 2 - Make sure that mastery score and score are both normalized by choosing to report score as a ‘percentage.’ You’ll notice that this is also the solution to Problem #3. If you have confirmed that your LMS expects to receive score as raw, then use Solution #3.

Solution 3 - If you must report score as a raw value, then be sure to enter a raw value for mastery score. In our scenario, instead of entering ’80′ for mastery score, you would enter ’17′. That way, when the LMS re-evaluates lesson status, both score and mastery score are on the same scale and the calculation is done correctly. While technically incorrect since the spec dictates that mastery score be normalized, we won’t worry about it because you’d only use this solution in the case that your LMS is also non-compliant because it’s expecting raw values for score. It’s a workaround.

Conclusion

We’ve seen that Adobe Captivate provides a robust solution for quickly developing online training solutions. But let’s not forget that we need to be mindful of the implementation of the SCORM specification by the LMS and how it’s going to react to our Captivate lessons.

Review the problems and their solutions and you can be sure that your Captivate lessons are going to comply with SCORM 1.2 and function properly when loaded into a SCORM 1.2-compliant learning management system.

Chrome–An additional plug-in is required to display some elements on this page–Solved

Install Plug-in

image

If you are receiving this error in Chrome, and finding that installing the plugin does absolutely nothing.

And clicking the":

image

Takes you to a Windows media and Java error page.

image

http://www.google.com/support/chrome/bin/answer.py?answer=95697&topic=14687&hl=en-US

Which if you bother to follow the instructions will not help you at all.

The cause

Almost certainly the cause of this problem is going to be a recent update by Skype. One could posture that it did not take long after the Microsoft purchase for Skype to become annoying, but I am saddened to say that I thin they have buggered it up without needing to call anyone from the Vista development team.

image

The most recent update of Skype 5.6.0.8.442 adds a little feature to your browsers (without asking you) that reads numbers that look like phone numbers and allows you to click and call them in Skype.

It also adds a little blue Skype thing to the top of you page:

image

The Solution

So the fix to stop Chrome asking you about installing a plug-in all the time is to disable the Skype plugin in Chrome.

1. Click the spanner

image

2. Tools \ Extensions

3. Un-tick the Skype Extension

image

That should be all you need to do to stop Skype mucking up your browser.

 

Thoughts

It is bad practice for Skype or anyone to add invasive features such as this that “take over” your experience without making it clear in the install process that this is being done. Skype did it in the past then dropped the idea. Not sure why they have returned to it, but it sucks!

I remember the annoying days of Real Player and their invasive installs that totally bombarded you with their crappy experience. I hope that Skype is not taking that path.

Interestingly the only other plugin that I found installed in Chrome that I was not asked specifically if I wanted installed was a RealPlayer extension.

image

Funny that!~