Support

alphassl the requested property value is empty Exception for HRESULT 0x80094004

alphassl the requested property value is empty Exception for HRESULT 0x80094004

Problem

When completing an Alphassl certificate install on IIS using the “Complete Certificate Request” you receive the error:

There was an error while performing this operation.

Details:

The requested property value is empty. (Exception from HRESULT: 0x80094004)

Exception for HRESULT 0x80094004

Now this is a Typical Microsoft Error in that it really only has meaning to the person who created the error. For us end users stuck in this weird Microsoft world, the error message is trying to tell us that the Certificate you pointed to for the “Complete Certificate Request function in IIS

IIS Complete Certificate Request

is pointing to a .CER file that is not valid as a certificate for import.

So at this point it is time to check what certificate you placed in the .CER file that you are trying to import.

Solution

In particular with Alphassl certificates, the process of completing a new certificate request is completed by email. The end of the process involves receiving an email with instructions on how to complete the process of import.

Screenshot 2018 03 14 13 12 32

Now if you are anything like me, and you think you know what you are doing having completed this process a few times. You tend to work fast and read instructions later (like an IKEA assembly job). And on several of my certificate install jobs I have made the same error. That being that I read to point 2 above. Click the link which if I read it is obviously to the Root Certificate Install. Then proceed to copy and paste the SHA-256 Certificate into the process and save is as a .cer file, then try to complete the process with that hash. 

Screenshot 2018 03 14 13 16 13

So basically this is all wrong. The certificate Hash is actually included in the bottom of the email received from Alphassl and that hash from the bottom fo the email is the correct hash to copy and paste to your IIS server and save as a .cer file. It is then this file that you use to complete the process with your IIS “Complete Certificate Request” function. Not the above Root certificate.

RTFM.

 

 

There was an error while performing this operation.

Details:

The requested property value is empty. (Exception from HRESULT: 0x80094004)

Windows PowerShell Module you receive NotSpecified: (:) [Import-Module], FileLoadException

Windows PowerShell Module you receive NotSpecified: (:) [Import-Module], FileLoadException

This is a typical error for Modules that have been downloaded from the internet and are not given permission to run on the computer.

The solution

Really Easy. 

Open PowerShell

Navigate to the directory in the error message that contains the Module you intend to run. Running a command like:

cd C:\Users\administrator\Documents\WindowsPowerShell\Modules\ACMESharp\

Then Run the Command: 

Get-ChildItem . | Unblock-File

This will set the module files to be able to be used by PowerShell

That’s it. Now the module should run fine.

DNN (dotnetnuke) Active Forum Module Control Panel a critical error has occurred

Error when opening the DNN Active Forum Module Control Panel

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.aspx
DefaultDataProvider:DotNetNuke.Data.SqlDataProvider, DotNetNuke
ExceptionGUID:1012073d-d31d-4a73-a051-31478c9de05d
AssemblyVersion:7.4.0
PortalId:0
UserId:3429
TabId:107
RawUrl:/Resources/Forum/ctl/EDIT/mid/506
Referrer:http://website.com.au/Resources/Forum
UserAgent: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.3
ExceptionHash: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:0
FileColumnNumber:0
Method:
Server Name: SERVERNAME

 

The Fix

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” />

 

 

    <cryptography defaultProvider=”CoreCryptographyProvider”>

      <providers>

        <clear />

        <add name=”CoreCryptographyProvider” type=”DotNetNuke.Services.Cryptography.CoreCryptographyProvider, DotNetNuke” providerPath=”~\Providers\CryptographyProviders\CoreCryptographyProvider\” />

      </providers>

    </cryptography>


 Take note of where this is found in the web can feed file below.

Screenshot 2015 06 27 17 13 53

 

 

Google Analytics API Access V3

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.

1. You need to have a Google Analytic account with your website registered.

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.

 

2. Set up an API for your Google Analytics Account at the Google Developers Portal.

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:

  1. Go to the Google Developers Console.
  2. Select a project, or create a new one.
  3. In the sidebar on the left, expand APIs & auth. Next, click APIs. Select the Enabled APIs link in the API section to see a list of all your enabled APIs. Make sure that the Google Analytics API is on the list of enabled APIs. If you have not enabled it, select the API from the list of APIs, then select the Enable API button for the API.
     Screenshot 2015 07 07 00 53 20
  4. In the sidebar on the left, select Credentials.
     Screenshot 2015 07 07 00 54 06

In either case, you end up on the Credentials page and can create your project’s credentials from here.

Create a client ID

From the Credentials page, click Create new Client ID under the OAuth heading to create your OAuth 2.0 credentials.

  1. For the APPLICATION TYPE select Service account.
  2. Click Create Client ID.
  3. For the KEY TYPE select P12 key. (The system will download a .P12 file. You will need this file to upload to the module)
  4. A dialog box appears. To proceed, click Okay, got it.

 

3. Add service account to Google Analytics account

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)

Screenshot 2015 07 07 00 49 39

Enter the weird email address from the API credentials step above to give Read & Analyze permissions.

Screenshot 2015 07 07 00 51 16

 

In Summary

  1. You have created a Google Developer Account.
  2. Created an API and Given Permission to “Analytics API”
  3. You have Downloaded a P12 Credentials file.
  4. You have Authorised the associated weird google email address from the P12 account to have read permissions on your Analytics Account.

If you get all that right, then the module we use, will work to access your Google Analytics data from within your module.

 

DotNetNuke Microsoft Silverlight pivot module web.config changes.

image

During the installation of the DotNetNuke Microsoft pivot module, it is necessary to several changes to be made to the web.config file. These changes allow the Silverlight pivot technology to operate on the DotNetNuke website.   
    
We have automated the installation process to automatically update the web.config file during the installation of the module.

Please remove the following things under <system.web>

<add verb="*" path="*.cxml" type="iwebs.Modules.Pivot.CXMLHandler,App_SubCode_Pivot" validate="false"/>

<add verb="*" path="*.jpg" type="iwebs.Modules.Pivot.TileHandler,App_SubCode_Pivot" validate="false"/>

<add verb="*" path="*.dzc" type="iwebs.Modules.Pivot.DZCHandler,App_SubCode_Pivot" validate="false"/>

<add verb="*" path="*userprofile.aspx" type="iwebs.Modules.Pivot.ProfileHandler,App_SubCode_Pivot" validate="false"/>

   Also the ones under </system.webServer>

<add name="CXMLHandler" verb="*" path="*.cxml" type="iwebs.Modules.Pivot.CXMLHandler,App_SubCode_Pivot" validate="false" preCondition="integratedMode"/>

<add name="JPGHandler" verb="*" path="*.jpgx" type="iwebs.Modules.Pivot.TileHandler,App_SubCode_Pivot" validate="false" preCondition="integratedMode"/>

<add name="DZCHandler" verb="*" path="*.dzc" type="iwebs.Modules.Pivot.DZCHandler,App_SubCode_Pivot" validate="false" preCondition="integratedMode"/>

<add name="ProfileHandler" verb="*" path="*userprofile.aspx" type="iwebs.Modules.Pivot.ProfileHandler,App_SubCode_Pivot" validate="false" preCondition="integratedMode"/>

<add name="TileHandler" verb="*" path="*_files/*/*_*" type="iwebs.Modules.Pivot.TileHandler,App_SubCode_Pivot" preCondition="integratedMode,runtimeVersionv2.0"/>

Read more about steps you can take to resolve this problem (error number 0x80072EE7) yourself–solved.

image

We were receiving this error constantly when trying to run either the Microsoft Update service or Windows update service.

Read more about steps you can take to resolve this problem (error number 0x80072EE7) yourself.

image

Solution (fix)

As you would expect, there is no help from Microsoft here.

We found that the DNS server for the internet connection on this machine was pointing to a local server of ours. We changed this to the Google free DNS service:

IP 8.8.8.8

IP 8.8.5.5

image

And ran the update process again. We found that it worked right away.

The likely cause relates to the DNS server we host being unable to look up something Microsoft correctly. We will fix that by updating the way that the server references Microsoft resources. But for now, it is handy to know that the error above was related to a DNS problem.

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:

<script src=”http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.3” type="text/javascript"></script>

HTTPS:

<script src=”https://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.3&s=1” type="text/javascript"></script>

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.

Creating a New User in Smarter Mail 9

Here are the steps to create a new user in Smarter Mail 9 Enterprise. image

Add New Email Address

1. Log into the webmail interface. webmail.domain.com as a mail administrator.

2. After Login, select the Settings Icon from the left hand menu.

image

3. Expand Domain Settings and Select Users.

image

4. From the Main Window, select New.

image

5. Fill in new user details with the following format.

User Name:  firstname.lastname

Pass: secure password

Display Name: FirstName LastName

Reply-To Email Address: firstname.lastname@domain.com

Backup Email Address: Optional (Use Existing personal address of user if filled in)

User Status: Enabled

Mailbox Size Limit: 50 MB

Enable Outgoing Mail Signing: Enabled

image

6. Click Save when complete.

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.

Remote Desktop mstsc.exe slow will not start windows 7

Had a painful problem today with the mstsc.exe application in Windows 7 64 Bit Ultimate today.

image

An otherwise happy install suddenly failing to start, or if is started it would be very slow.

Once started, it would not close from the task manager, even if I killed the process with the end process.

Initially

I suspected that it was possibly a virus etc. However I found that there are a lot of people on the net with this exact problem.

I then set about a solution, and figured on out myself, that involves replacing some of the files use by the MSTSC.EXE application.

Basically there are 4 files that I replaced with the same version from another computer that was functional and healthy. They are:

Capture

c:\windows\system32\

MSTSCAX.dll

MSTSC.exe

c:\windows\system32\EN-US\

MSTSCAX.dll.mui

MSTSC.exe.mui

I would create a .zip copy for download except I fear giving out some stored connection settings in the files I already have. So sorry, you will have to find your own backup files.

 

The Bitch of it

The annoying problem is that you cannot just copy the 4 files into the two folder locations as Windows 7 in all it’s wisdom will not let you copy files there, as you are not the “Trusted Installer”.

You might be like me, Administrator and God of your computer that at any time can take to it with a hammer and replace it with a Mac, but Windows 7 knows best… so let’s show you what you have to do to hack that crap!

 

Give Permissions

First, go to the folder or set of files that you need to change permissions for, right-click on them and choose Properties.

image

Next click on the Security tab and then click on the Advanced button at the bottom:

image

Next click on the Owner tab and you’ll now see that the current owner is TrustedInstaller.

image

Now click on the Edit button and choose who you would like to change the owner to, either your account or the Administrators. If your account is an Administrator account, I would suggest just picking Administrators.

image

You can also check off Replace owner on sub containers and objects if you need to delete more than one file in a folder. Go ahead and click OK. Now you will see that the Current owner is the account you picked.

image

Click OK until you have closed all properties windows and are back to the Windows Explorer screen. Then right-click on the folder or file again and choose Properties again.

Now click on the Security tab again, but instead of clicking on Advanced, you need to click the Edit button.

image

Now click on the user name in the list that you want to change the permissions for, which should be the same as who you changed the current owner too. If the user name is not in the list, click Add, type in the name and click OK.

image

Since I had changed the current owner to Administrators, I clicked on Administrators here and then clicked on the check box next to Full Control. When you do that, all the other boxes get checked too.

Click OK once and then click OK one more time to get back to Windows Explorer. Now you can replace those files without any UAC messages telling you that you can’t! Enjoy!

CRM 2011 Server Error 404 – File or directory not found

Cannot Access CRM 2011 site 404

Something strange that we have encountered with CRM 2011 is a 404 – File or directory not found error.

What is particularly strange about this one is that the error happens from IE 9 on one computer, but the same URL and site loads correctly with another browser on another computer AND loads correctly to the authentication screens on the same computer but with a different browser.

Go figure right!

image

 

Microsoft show it as:

image

So what is the Solution?

We tried a number of things that did not work, and we will not bother to list them all, but interesting the clearing the browser history and cache etc does not fix it but is needed to fix it.

1. Clear history and cache in the browser:
imageimage

2. Close the Browser entirely

3. Navigate to C:\Windows\Temp and delete everything in that directory.

4. From this screen, got to browser history settings:
image

Then View Files:

image

5. Takes you to this location: C:\Users\XXUSERXX\AppData\Local\Microsoft\Windows\Temporary Internet Files

6. Close Outlook and IE.

7. Delete Everything in that folder that it will allow you to delete. Some files are in use and not able to be deleted.

8. Start IE, and away you go.. you should be able to access the site again.

Rant!

IE really does suck as a browser, it is a real same and the worst thing about CRM 2011 is that they make you use this junk browser.

Professional DotNetNuke Support Services

Professional Web Support Services

InteractiveWebs Support Services

image

At InteractiveWebs we have years of experience with DotNetNuke, with more published modules on SnowCovered than any other module developer in the store. (And we don’t publish all our modules.)

  • We have our own full time employed team of DNN developers.
  • We have our own full time employed Server Administrators.
  • We have our own Data Centres with our own equipment.
  • We have Years of Professional DotNetNuke Development Experience.

Quite literally there is no one who is more experienced with everything dotnetnuke.

We Offer Paid Support Services for DotNetNuke

We offer paid support services for DotNetNuke in an easy and covenant process.

  1. You advise us of the issue you are facing.
  2. We estimate an up front cost and advise you.
  3. If you decide to accept the quote, we will request that you buy the equivalent number of support tickets from our store.
  4. We will then complete the support job.

Purchasing Support Tickets

You only need to purchase support tickets if we have advise you how many tickets you will need to purchase upfront for the particular job.

You can purchase support tickets from our Support Store Here.

Supporting our Modules Free VS Charged

All of our DotNetNuke Modules are supported free of charge. We will work to resolve issues that our modules cause, or problems directly related to our modules not working as they should.

Sometimes we have clients who need our modules to be configured in a complex environment, or would like them to work with another conflicting product, or they may just want the people who made the module to set them up for them.

In these instances, we are happy to identify work that goes above an beyond “product support” and provide a quote for the additional work. You will find that we are very reasonable both about the price and what we cover for free.

Purchase Support Tickets Here

Outlook Hangs (stops responding) Opening Email Messages Sent from PayPal

[gard]

Outlook hangs caused by PayPal messages template fault

imageIn just the last few days, I have started experiencing some issues with Outlook when opening messages sent from PayPal.
This is happening with the recent versions of Outlook, including Outlook 2010 and Outlook 2007.
image

Some of the indications of the problem include.

  • Outlook taking longer than normal to open.
  • Outlook with “Reading Pane” on
  • Outlook Stops Responding when clicking on an email from PayPal.
  • If you wait a long time, it will come good, and even show the email message.
  • If you are impatient and cancel out of outlook, your reading pane is gone when you next open it.

When loading Outlook you receive a message about and address: Contacting: \\102.112.207.net\b\ss\paypalglobal\1\G.4-NS
image

Background information

It appears that the cause of this is some malformed tracking cookies being sent from PayPal.
While it could be argued that Outlook should handle this invalid link much better than it does… We all know that Microsoft is responsible for Outlook, so really we should not expect too much in the way of “graceful error handling”. (After 20+ years of Windows system events, they still don’t have an online library of error codes and meanings.)
At the bottom of the message, there is a hidden tracking image. Instead of this image pointing to a web server, it is pointing to a non-existing network share. As it is pointing to a network share and not to a web server, Outlook’s “Internet picture blocking” functionality doesn’t kick in and tries to retrieve the content.

So what to do what to do?

First, I know for a fact that PayPal is aware of this issue, and while it is literally a 10 min fix for the right person, we know that finding the right person probably means contacting the dev team out of India that they hired last month, and asking them to fix their crap!
Oh I have been doing this too long!
Really… what to do!

  1. Nothing… If you are patient when opening email messages from PayPal while this issue happens, then they will open.
  2. Delete all recent messages from PayPal permanently form both your inbox and deleted items.
  3. Turn off the reading pane in Outlook.
  4. Turn your Outlook into plain text preview
    image
  5. Redirect the invalid call using a modification to hosts

    1. Start Notepad as an administrator.
      You can do this by right clicking on the Notepad shortcut in the Start Menu and choosing “Run as administrator”. If you don’t see this option, hold SHIFT while right clicking on it.
    2. Choose File-> Open… and open the following file;
      C:\Windows\System32\drivers\etc\hosts
    3. Add the following line at the bottom.
      127.0.0.1        102.112.2o7.net
    4. Save the file and close Notepad.

    image
    4. Save the file.

  6. This will basically route 2o7.net request back to your computer, which will reject it, allowing you to read your emails quickly and in peace once again.
    This fix will work on 32/64 bit versions of both Vista and Win 7


If you still have a problem

In Microsoft Windows, use the command ipconfig /flushdns to flush the DNS resolver cache. Open the command prompt and type the following:
C:>ipconfig /flushdns
Windows IP Configuration
Successfully flushed the DNS Resolver Cache.

image

Corporate solution for all computer clients at once

If you are in a corporate network, your system administrators can fix this for everyone at once by adding a Forward Lookup Zone (Primary Zone) for the 102.112.2o7.net domain. Then add an A host record without a name and have it resolve to 127.0.0.1.

After PayPal fix the issue.

The invalid link when fixed will not fix messages already sent with the issue. So unless you permanently delete message with the problem, you will see the trouble each time outlook references them for reading. This is because the reference is totally invalid, not just temporarily down.

SMTP Authentication–I Can Only Send Email to My Domain

image

One of the most common problems experienced by users of hosted email services is that they find they can only send email messages to their own domain.

For Example, if you have two hosted email addresses:

  1. ted@mybusiness.com
  2. john@mybusiness.com

You find that you can successfully send an email message from one user to another, but when you try to send to any other domain:

  1. anything@hotmail.com

You find that the email messages do not send.

Solution

You need to enable “Authentication” in your configured email account settings. There are many client email programs, probably the most common is Outlook.

When you configure an new POP3 email account you normally end up with something that looks like this:

image

If you click on More Settings / Outgoing Server

image

and just tick the option to use the same settings as the incoming mail server.

image

This is all that is needed to enable outbound SMTP authentication.

Background

SMTP Servers (or email servers) are setup to need stop people using them for sending email messages. As strange as that sounds, if they were not setup this way, then anyone could SPAM the world using that email server.

To prevent users from abusing an Open Relay Mail Server, the administrators say that anyone wanting to send email messages from that server to any other server, will need a users name and pass. Almost always this is the same user and pass as the one needed to download your mail from that server.

This this need for user and pass is referred to as “Authentication” and is necessary on almost all servers, other than internet service providers who give you an internet connection. In that instance they authenticate you from your internet connection.

Why Can You Send to Your Own Domain?

Because Email Servers by nature will received email messages to addresses they host. This is part of the process necessary for email messages to be sent and received.

InteractiveWebs Email Setup–iPhone Exchange Account

  1. Your Account Must Be Enabled for Exchange Access (contact us if you are unsure)
  2. To add an Exchange account to your iOS device, tap Settings > Mail, Contacts, Calendars > Add Account > Microsoft Exchange.
  3. On the next screen, enter your complete email address, domain, username, password, and a description (which may be anything you like).
     

    Exchange settings

  4. Your iOS device will now try to locate your Exchange Server using Microsoft’s Autodiscovery service. If it cannot locate the server, you will see the screen below. Enter your front-end Exchange Server’s complete address in the Server field. Enter: mail.interactivewebs.com for the server name.

    Exchange settings

     

  5. Choose which type or types of data you would like to synchronize: Mail, Contacts, and Calendars. Note that by default, only three days’ worth of email is synchronized. To synchronize more, go into Settings, then Mail, Contacts, Calendars, select your Exchange account, and tap on Mail days to sync.

    Note that after configuring an Exchange ActiveSync account, all existing contact and calendar information on the iOS device is overwritten. Additionally, iTunes no longer syncs contacts and calendars with your desktop computer. You can still sync your iOS device wirelessly with MobileMe services.

    Exchange settings

InteractiveWebs Email Setup–Outlook 2010 Encrypted

To configure an encrypted IMAP connection to InteractivWebs Email servers follow the setup below.

New Account

image_thumb

Next

image_thumb[1]

Next

image_thumb[2]

Enter:

Next

image_thumb[3]

Comes up with a message about encryption. That’s expected

image

Tick the Manually Configure server Settings (bottom left) Next

image

More Settings

image

OK

image

Update Both the Incoming and Outgoing servers to: mail.interactivewebs.com

Finish

Your New IMAP Account is configured with Encrypted Communications.