This documentation is for Icodeon SCORM Player .NET Edition Version 2

Icodeon Ltd
St Johns Innovation Centre
Cowley Road
Cambridge
Cambs
CB4 0WS
United Kingdom
+44 (0)870 950 6582
<sales@icodeon.com>

Install and Configuration Guide for Icodeon SCORM Player Version 2 (.NET Edition)
Feb 2008
Table of Contents
List of Tables
Table of Contents
Welcome and thank you for choosing the Icodeon SCORM Player .NET Edition. The Icodeon SCORM Player .NET Edition is a full SCORM run time environment designed to be easily intgerated into new or exisiting learning management systems.

SCORM 2004 games based learning running in the Icodeon SCORM Player
The Player supports full latest SCORM 2004 Sequencing and Navigation specification to enable advanced adaptive web based learning.
The Icodeon SCORM Player is designed around a set of standards based web services that exchange XML documents with a SCORM run time environment in an Internet Browser.

The player runs in the browser and exchnages XML documents with web services
Table of Contents

The Icodeon SCORM Player .NET Edition is distributed as a .zip file
The Icodeon SCORM Player .NET Edition is distributed as a .zip file. Icodeon provide a username and password to download the zip file from the Icodeon website. Once the file is downloaded and unzipped, the following directory structure is seen:
[PARENT DIRECTORY]/api/
[PARENT DIRECTORY]/config/
[PARENT DIRECTORY]/docs/
[PARENT DIRECTORY]/legal/
[PARENT DIRECTORY]/resx/
[PARENT DIRECTORY]/sql/
[PARENT DIRECTORY]/src/
[PARENT DIRECTORY]/wwwroot/
The contents of these directories and their files are
described in greater detail elsewhere. Summary descriptions are: api: API documentation for building plug-in .dll libraries for the Icodeon SCORM Player.
config: some example database configuration files that can be used as a starting point for deployment specific configuration.
docs: user guides and other supporting documentation.
legal: licenses for 3rd party libraries used in the Icodeon SCORM Player and the Icodeon Software Evaluation License.
resx: source files for language packs.
sql: files containing the SQL required to set up the database tables for a number of popular databases.
src: Microsoft C# source code for default plug-ins.
wwwroot: Icodeon SCORM Player .NET Edition web application files.
The Icodeon SCORM Player is distributed with a license file. The license file is located at:
[PARENT DIRECTORY]/wwwroot/bin/runtime.lic
The software is distributed with this license file set to provide a 30
day trial limit of the product. At the end of the license trial limit an error in the log
files will read:
Could not validate license "Evaluation Edition (TRY-)" in C:\...\runtime.lic.
...
The trial period has expired.
After expiration of the trial limit, an evaluation team may contact
Icodeon for purchase of a perpetual license, an extended license, or a date limited
restricted license. Perpetual License: Icodeon will provide a serial number that unlocks and licenses the software to be used without limits. To unlock the license, the serial number of the perpetual license should be pasted into the file at:
[PARENT DIRECTORY]/wwwroot/serial_number.inf
All other text, except the serial number, should be deleted from
the file. The serial number for the standard perpertual license will have a prefix of
"STD-" and form similar too:
STD-12345-ABCDE-1234-ABCD
Extended License: Icodeon will provide a serial number that unlocks and licenses the software to be used within agreed time or date limits. To unlock the license, the serial number of the extended license should be pasted into the file at:
[PARENT DIRECTORY]/wwwroot/serial_number.inf
All other text, except from the serial number, should be deleted
from the file. The serial number for the extended license will have a prefix of "EXT-"
and form similar too:
EXT-12345-ABCDE-1234-ABCD
Date Restricted License: Icodeon will provide a serial number that unlocks and licenses the software to be used to an agreed date limit. To unlock the license, the serial number of the date restricted license should be pasted into the file at:
[PARENT DIRECTORY]/wwwroot/serial_number.inf
All other text, except from the serial number, should be deleted
from the file. The serial number for the extended license will have a prefix of "RES-"
and form similar too:
RES-12345-ABCDE-1234-ABCD
Table of Contents
The following SCORM versions are supported:
SCORM 1.2
SCORM 2004 3rd Edition including SCORM run time environment, and all SCORM sequencing and navigation behaviour.
Summary conformance logs for SCORM 2004 3rd Editon conformance are available for inspection.
The Icodeon SCORM Player will display and sequence IMS Content Packages. The Icodeon Player determines automatically at run time the content type. The correct adapters and behaviours are automatically loaded and no special set up is required by the host LMS.
The Icodeon SCORM Player .NET Edition has been tested on the following browser and operating system combinations:
| Operating System | Browser | Comment |
|---|---|---|
| Windows 2000 | Internet Explorer 6 | OK |
| Windows XP | Internet Explorer 6 | OK |
| Windows XP | FireFox 1.5 | OK |
| Windows VISTA | Internet Explorer 7 | OK |
| Windows VISTA | FireFox 2 | OK |
| Windows VISTA | Opera 9 | OK |
| Windows VISTA | Safari 3 | OK |
| Mac OS X | Safari 3 | OK |
| Mac OS X | FireFox 2 | OK |
| Mac OS X | Omniweb 5.5 | OK |
| Mac OS X | Camino 1.5 | OK |
| Mac OS X | Opera 9 | OK |
Table 3.1. Browser and Operating System Combinations for Icodeon Player
The Icodeon SCORM Player .NET Edition uses the NHibernate system as a software layer between the application and a relational database. All databases supported by NHibernate are therefore supported by the Icodeon Player. The software distribution comes with SQL and example configuration files for the following databases:
MySQL
Microsoft SQL Server 2000
Microsoft SQL Server 2005
The following Microsoft .NET common language runtime (CLR) versions are supported:
.NET 1.1
.NET 2.0
The Icodeon SCORM Player is designed to be deployed to the Microsoft Internet Information (IIS) server. The application has bee tested on the following versions:
IIS 5
IIS 6
IIS 7
The Icodeon Player will be adding support for the IMS Tools Interoperability Specification in future versions. The specification enables a secure web services integration between the Icodeon Player and a host learning management system (LMS).
The Icodeon Player reports SCORM tracking data as an XML binding according to the schema for Content Object Comunciation Data Model, published as the IEEE 1484.11.3 standard. When a SCORM object is running in the Icodeon Player, any tracking data passed from the SCORM object to the Icodeon Player web services is sent as a SOAP message with an IEEE 1484.11.3 schema valid XML document instance.
Table of Contents
The Icodeon SCORM Player .NET Edition web application files are distributed within the directory at:
[PARENT DIRECTORY]/wwwroot/
that includes a configuration file called:
[PARENT DIRECTORY]/wwwroot/web.config
The default deployment is to create a "virtual directory" (called
"player") on an IIS web server that points to the wwwroot directory. Some versions of the
IIS server control panel offer a "new virtual directory" option or a "new application"
option. If the option is given, a "new application" must be chosen. For
a fast initial deployment, XML file based persistence can be chosen to verify application
install. This avoids the extra overhead of setting up database connection. The steps are:
In the IIS management screen, create a new application directory called "player". Map this directory to the "wwwroot" directory distributed with the Icodeon SCORM Player.
Using the file system, navigate to the "wwwroot" directory distributed with the Icodeon SCORM Player and open up the "web.config" configuration file using an XML editor. Edit the entries for persistence factory classes. These classes are "plug-ins" that enable different persistence strategies to be supported. For XML file based persistence, set the following values:
<add key="CMIPersistenceFactory"
value="Icodeon.Services.Cmi.DAO.Xml.PersistenceFactoryImpl"/>
...
<add key="SSPersistenceFactory"
value="Icodeon.Services.SS.DAO.Xml.PersistenceFactoryImpl"/>
Restart the IIS web server.
Using a browser, open the index.html page at:
http://localhost/player/index.html
A welcome screen is shown. The welcome screen is not part of the Icodeon SCORM Player application, but acts as an example page. The page contains minimal mark-up and script to show the Icodeon SCORM Player can be launched from a static HTML page.
The Icodeon SCORM Player is based on a SCORM run time environment in the browser exchanging XML documents with SOAP based web services on the server. It is important to chech that the web servcies are deployed correctly before attempting to launch the browser base client-side code.

Web services exchange XML documents with a SCORM run time environment
Check the web service for the SCORM Computer Managed Instruction (CMI) data model is available at:
http://localhost/player/services/CmiService.asmx
Check the web service for the SCORM Sequencing and Navigation is available at:
http://localhost/player/services/SequencingService.asmx
The Icodeon SCORM Player is distributed with some example SCORM Interchange Files (PIF) and IMS Content Packages (CP). These are provided in the default location:
[PARENT DIRECTORY]/wwwroot/CourseImports/
Check that these packages can be launched in the Icodeon SCORM
Player by clicking one of the course links on the static HTML index.html page.
For a successful deployment, the course will be running in a new window.

SCORM 1.2 Detective [ [full size] ]
Production deployment essentially follows the same steps as the default deployment described above, with two important differences. Firstly, most production deployments will want to set up relational database persistence. Secondly, there are a nummer of small changes that need to be made to promote a secure deployment. The steps are:
Follow the steps for the default deployment. Deployists may want to change the name of the virtual directory to something meaningful for a particular context.
Follow the steps for the database configuration.
Follow the steps for the user interface configuration.
Follow the steps for the course content management configuration .
Ensure that any exceptions created by the software do not provide rich details for users. Make the following edits to the web.config configuration file:
<compilation debug="false"/>
<trace enabled="false" pageOutput="false"/>
...
<customErrors mode="On" defaultRedirect="errors/LMSError.aspx">
<error statusCode="404" redirect="errors/LMSError_404.aspx"/>
<error statusCode="500" redirect="errors/LMSError_500.aspx"/>
</customErrors>
Ensure that server log level is set to INFO and that a log location is chosen:
<logger name="Icodeon" additivity="false">
<level value="INFO"/>
<appender-ref ref="FileAppender"/>
</logger>
...
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:/path/to/log/directory/vendor_player_log.txt"/>
...
</appender>
Ensure that no client side logging is exposed to users:
<add key="ajaxLogLevel" value="NONE"/>
...
<add key="isDebugAjax" value="false"/>
Remove support and training files that came with the distribution thay should not be exposed to users:
[PARENT DIRECTORY]/wwwroot/index.html
[PARENT DIRECTORY]/wwwroot/LMSFrameset.html
[PARENT DIRECTORY]/wwwroot/LMSFrameset_header.html
[PARENT DIRECTORY]/wwwroot/LMSFrameset_main.html
[PARENT DIRECTORY]/wwwroot/LMSFrameset_menu.html
[PARENT DIRECTORY]/wwwroot/LMSDatabase.aspx
[PARENT DIRECTORY]/wwwroot/LMSPackages.aspx
The application is now configured for production use.
Table of Contents
The Icodeon SCORM Player .NET Edition uses the NHibernate library to manage persistence of instances of business object classes to a relational database. The Icodeon SCORM Player .NET Edition therefore supports all databases supported by NHibernate. In the Icodeon software distribution, SQL and example configuration files are included for MySQL and Microsoft SQL Server (2000 and 2005).
The software distribution comes with SQL for generating required database tables. Each table is prefixed with three characters that are used for the Icodeon namespace ("ICN") to distinguish Player tables from any exisiting host LMS tables. The SQL files can be found in the directory:
[PARENT DIRECTORY]/sql/
On first use the SQL files may need to be edited. For
example, lines starting with:
alter table ICN_ATTEMPT_PROGRESS_INFO drop foreign key FKE551D07EEC46D115;
...
drop table if exists ICN_ATTEMPT_PROGRESS_INFO;
may cause errors to be reported because the tables have not
yet been created. Once the database tables have been created, the un-edited SQL files should
be used to re-generate a the database tables.
The database schema inherits semantics from the specifications used within the SCORM 2004 specification. In particular, the table names and field names are based on the following specifications: IMS Simple Sequencing IMS Content Packaging Computer Managed Instruction (CMI) Data Model
For further details of the database schema, and examples of report queries, please see the accompanying document schema.html
The Icodeon SCORM Player supports an extensible architecture for persistence: it is possible to "plug-in" different persistence strategies. The distribution comes with two strategies:
Persistence to the file system as XML
Persistence to a relational database through the NHibernate layer

Default and custom plug-in persistence strategies for the CMI tracking service
To enable the default "plug-in" for persistence to a relational database through the NHibernate layer, it is necessary to ensure the correct factory classes are specified. Using the file system, navigate to the "wwwroot" directory distributed with the Icodeon SCORM Player and open up the "web.config" configuration file using an XML editor. Edit the entries for persistence factory classes. These classes are "plug-ins" that enable different persistence strategies to be supported. For NHibernate based persistence, set the following values:
<add key="CMIPersistenceFactory"
value="Icodeon.Services.Cmi.DAO.Hibernate.PersistenceFactoryImpl"/>
...
<add key="SSPersistenceFactory"
value="Icodeon.Services.SS.DAO.Hibernate.PersistenceFactoryImpl"/>
The NHibernate system uses XML configuration files (typically with file extension "myfilename.cfg.xml") to pass various parameter values (such as connection strings) to the applications. The software distribution comes with example NHibernate configuration files in a directory located:
[PARENT DIRECTORY]/config/
Deployists will need to copy and then edit one of these
example files for the specific parameter values (such as connection string, driver) of the
local deployment environment. The remaining steps for database configuration are to map the
location of the NHibernate configuration file to a parameter value of a parameter named
"domainID" and to provide the "domainID" parameter value in the launch parameters of the
Icodeon Player. The steps are: Copy and then edit one of the example NHibernate configuration files for the specific parameter values (such as connection string, driver) of the local deployment environment and database type:
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory name="player">
...
<property name="dialect">NHibernate.Dialect.MsSql2000Dialect</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="connection.connection_string">...</property>
...
<mapping assembly="Icodeon.Player" />
</session-factory>
</hibernate-configuration>
There will need to be one NHibernate configuration
file for each database instance that the application needs to support. For example, if
an vendor is providing SCORM services to three customers, then the vendor may decide
to use a different database for each customer.
Edit the web.config application configuration file for the name and location of the NHibernate configuration file:
<playerGroup>
<sessionFactories>
<sessionFactory domainID="database_for_customer_A"
factoryConfigPath="C:\path\to\edited\configuration\file\myfilename.cfg.xml"/>
</sessionFactories>
</playerGroup>
The web.config application configuration file will also be edited with a chosen parameter value for the "domainID" parameter name for each NHibernate configuration file. In this way a key/value pair relationship is established and the application can use multiple database instances, each with they own identifying key:
<playerGroup>
<sessionFactories>
<sessionFactory domainID="database_for_customer_A"
factoryConfigPath="C:\path\to\edited\configuration\file\myfilename.cfg.xml"/>
<sessionFactory domainID="database_for_customer_B"
factoryConfigPath="C:\path\to\edited\configuration\file\anotherfilename.cfg.xml"/>
</sessionFactories>
</playerGroup>
The value of the "domainID" parameter needs to be added to the launch parameters of the Icodeon Player. For example, if an HTML form is being used to launch the Player window, the "domainID" parameter and value would be added as a hidden form field:
<form method="post">
<input type="hidden" name="domainID" value="database_for_customer_A"/>
...
</form>
Table of Contents
SCORM content is distributed as compressed .zip file known as a Package Interchange File (PIF). A host learning management system will typically provide some facility for uploading and unzipping these files to a network location. It is the responsibility of the host learning management system to provide the Icodeon SCORM Player with a unique identifer, the "courseID" parameter value, that can be resolved to the location of the unzipped PIF.
The details of exactly how the "courseID" is resolved to the network location of an unzipped PIF is implementation specific. The software is provided with the default implementation and source code. Vendors are free to write their own implementation as a "plug-in" for a vendor specific strategy for resolving the "courseID" parameter value to the the location of the unzipped PIF.
The default implementation relies on a simple strategy of:
Specifing path for a root directory for all unzipped PIF files. This directory is specified in the web.config configuration file, and can be a relative or absolute URL:
<add key="LCMSEndPoint" value="CourseImports"/>
The example above specifies a directory relative to
the application directory. For an application mapped to a virtual directory called
"player" all unzipped PIF files would be found at:
http://localhost/player/CourseImports/
If an ansolute URL had been specified: URL:
<add key="LCMSEndPoint" value="http://localhost/content/scorm"/>
all unzipped PIF files would be found below the
"scorm" directory.
Specifying that the "courseID" parameter value is the same as the directory name of the unzipped PIF file. The Icodeon Player then builds a URL to read in the imsmanifest.xml file give the location of the root directory that contains all unzipped PIF files, and the specific directory name of the directory contained the unzipped PIF file itself.
The code that implements this strategy is in a class called "ManifestHandlerFactory" and compiled into a library called "Icodeon.Player.Plugins". The class is mapped to a defined handler name called "ManifestResolver" and specified in the web.config configuration file:
<system.webServer>
<handlers>
...
<add name="ManifestResolver" verb="GET" path="ManifestResolver.aspx"
type="Icodeon.RTE.Handlers.ManifestHandlerFactory, Icodeon.Player.Plugins"/>
...
</handlers>
</system.webServer>
The source code for this default implementation is found in:
[PARENT DIRECTORY]/config/src/Icodeon/RTE/Handlers
Icodeon customers are licensed to re-use this code as a
basis for their own implementation to "plug-in" as a replacement for the default
implementation.
The process of writing a "plug-in" implementation to relace the default implementation is as follows:
Design a strategy that can be implemented in C# code for the .NET 1.1 or .NET 2.0 platform that resolves a given "courseID" to the unqiue network location of the unzipped PIF file.
Code the strategy as an "HTTP Handler" class, that implemenent the interface:
System.Web.IHttpHandler
Instances of these classes are manufactured by factory
classes that are an implemenation of the the interface:
System.Web.IHttpHandlerFactory
so a factory class will need to be written also. The
"HTTP Handler" class and it's "Factory" will then need to be compiled into a class
library (.dll) file and mapped against the defined handler name called
"ManifestResolver" that is specified in the web.config configuration file.
<system.webServer>
<handlers>
...
<add name="ManifestResolver" verb="GET" path="ManifestResolver.aspx"
type="Vendor.RTE.Handlers.ManifestHandlerFactory, Vendor.Player.Plugins"/>
...
</handlers>
</system.webServer>
There is a well known issue in SCORM implementations known as the "SCORM Cross-Domain Scripting Issue" that is a variant of the browser "Single Origin" security policy: that scripts from a web page from one domain may not invoke functions of a script on a web page of another domain.
The issue arrises in SCORM implementations as SCORM specifies that a host run time environment (such as the Icodeon SCORM Player) and content objects must establish a communication session through Java Script function calls.
There is ongoing discussion within the community of SCORM implementers concerning this cross-domain scripting issue. Icodeon recommends placing both the Icodeon Player and the Course Content within the same network domain to be the most successful strategy.
Table of Contents
The Icodeon SCORM Player supports an extensible system for user interface language. Compiled resource (.resx) files can be added in the approptiate directory under the location:
[PARENT DIRECTORY]/wwwroot/bin/
By default the Icodeon Player supports the following
languages in the table below. The language system is extensible, so venndors can request
additions to the languages supported. | Code | Country and Language |
|---|---|
| da-DK | Danish |
| de-DE | German |
| en-GB | English (UK) |
| en-US | English (US) |
| es-ES | Spanish |
| fr-FR | French |
| nb-NO | Norwiegen |
| sv-SV | Swedish |
Table 7.1. Default Languages Supported by the Icodeon Player
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
culture="en-US"
uiCulture="en-US"/>
The Icodeon Player supports customization of user interface devices. SCORM 2004 3rd Edition User Interface conformance requires that that SCORM run time environments provide learners with a minimum set of User Interface devices. Howver, because SCORM content often contains its own navigation devices, many vendors wish to remove devices from the run time environment. One way to do this is to customize the user interface devices of the Icodeon Player.
The user interface devices of the Icodeon Player are customized by editing a comma separated list of features in an element in the web.config configuration file:
<add key="uiFeatureList"
value="back,next,exit,toolbar"/>
The table below lists the vocabulary tokens supported for
each user interface feature. There is a special token of "blank" that displays the Icodeon
SCORM Player with no user interface controls. | Token | Description |
|---|---|
| back | Button to trigger SCORM "previous" navigation event |
| next | Button to trigger SCORM "continue" navigation event |
| exit | Button to trigger SCORM "exit" or "exitAll" navigation event |
| toolbar | Collapsible tool bar |
| organizations | Drop down combo box for multiple organizations |
| tree | Collapsible table of contents displayed as tree control |
| blank | No user interface devices |
Table 7.2. User Interface Devices Supported by the Icodeon Player
The title that appears of the Icodeon Player toolbar is customized by editing a an element in the web.config configuration file:
<add key="playerTitle"
value="Vendor Branded Title"/>
The image below illustrate an example configurations:
The Icodeon Player is provided with four configurations for look and feel. These configurations are known as user interface "skins". The skin configuration of the Icodeon Player is customized managed using the "skinID" element in the web.config configuration file:
<add key="skinID" value="default"/>
The table below lists the vocabulary tokens supported for
each of the provided skins and a screen shot of each skin:
The Icodeon Player distribution is supplied with some sample HTML markup to show how the Player can be loaded into either a new window or an HTML frameset.
[PARENT DIRECTORY]/wwwroot/index.html
[PARENT DIRECTORY]/wwwroot/LMSPackages.aspx
[PARENT DIRECTORY]/wwwroot/LMSFrameset.html
These files are not intended for production use and are not part of
the Icodeon SCORM Player application. The files are included to guide integration
developers with an approach to integrating the Icodeon Player into their own windows and
web pages. 
The Icodeon SCORM Player within an HTML frameset [full size]
How the Icodeon Player is launched from a host LMS is an implementation decision for the LMS intgerator. The Player may be launched using a link with added URL parameters, or from a form, where parameters are added in hidden form fields. The Player may be launched into a new window or into an HTML frameset/IFrame within an LMS screen.
NOTE: Some SCORM content will attempt to close down a containing window. If the Player is added to an HTML frameset/IFrame within an LMS screen AND the SCORM content attempts to close down the LMS window, the user experiences the content closing an LMS session window. The example dynamic(.aspx)and static (.html) pages included with the distribution include example code for launching using HTML links and forms.
[PARENT DIRECTORY]/wwwroot/index.html
[PARENT DIRECTORY]/wwwroot/LMSPackages.aspx
[PARENT DIRECTORY]/wwwroot/LMSFrameset.html
There a are a number of mandatory and optional parameters that will
need to be added to a launch link or a launch form. Many of these parameters are also
featured in the web.config file where they are used to determine the behaviour for an
instance of the application. If a parameter is used in a launch request for a particular
learner session, then the launch parameter overrides the configuration parameter of the
same name. In this way, individual learner sessions with the Player can be tailored to the
specific user. The launch parameters are listed in the table below: | Parameter Name | Mandatory | Comment |
|---|---|---|
| learnerID | Yes | Used to populate the SCORM run time environment data model element cmi.learner_id. |
| courseID | Yes | Used to resolve the location of the directory containing the imsmanifest.xml file. |
| domainID | Yes | Used as a key to map to the location of the NHibernate configuration file. |
| learnerName | No (except for SCORM conformance testing) | Used to populate the SCORM run time environment data model element cmi.learner_name. If used, the format should be family name followed by first name separated by a comma. A middle intial can be added after space after the first name. Example: Student, Joseph A. |
| sessionID | No | This has no semantic meaning within the Icodeon Player and is simply persisted in the database table ICM_COCD. |
| skinID | No | Overrides the value set in the web.config file. |
| uiFeatureList | No | Overrides the value set in the web.config file. |
| playerTitle | No | Overrides the value set in the web.config file. |
| culture | No | Overrides the value set in the web.config file. |
Table 7.6. Launch Parameters for the Icodeon Player
Table of Contents
Detailed diagnostic information is required to identify the issue for resolution if there are errors reported by the Icodeon Player. To provide vendors and Icodeon with this detailed diagnostic information, use the following steps:
Turn on server-side debugging in the log files. The server-side log level is specified in the web.config configuration file, and should be set to DEBUG:
<logger name="Icodeon" additivity="false">
<level value="DEBUG"/>
<appender-ref ref="FileAppender"/>
</logger>
Optionally, filter server-side debugging for the component where the error is being generated. For example, is there is an error with the SCORM tracking, a filter could be applied to only log DEBUG messages from the CMI data model tracking web service:
<logger name="Icodeon.Services.Cmi" additivity="false">
<level value="DEBUG"/>
<appender-ref ref="FileAppender"/>
</logger>
Set error reporting to rich error reporting messaging. The richness of error reporting is specified in the web.config configuration file.
<compilation debug="true"/>
<trace enabled="true" pageOutput="true"/>
...
<customErrors mode="Off" defaultRedirect="errors/LMSError.aspx">
...
</customErrors>
The Icodeon Player makes use of advanced client-side JavaScript classes to manage SCORM behaviour and communication with web services. Errors in client-side behvaiour will not appear in the server side rich error reporting. To provide vendors and Icodeon with this detailed client-side diagnostic information, use the following steps:
Switch to using a FireFox browser for client side debugging. The error messaging from Java Script classes is more detailed in this browser.
Turn on AJAX logging for client side log messages. The debug and error messaging from Java Script classes will be recorded in a new browser window. The client-side log level is specified in the web.config configuration file, and should be set to DEBUG:
<add key="ajaxLogLevel" value="DEBUG"/>
From time to time Icodeon issue product updates. Customers will recieve automatic notification from Icodeon Customer Support when a new release is available for download. If the product update is a minor version change (for example, from Verison 2.09 to Version 2.10), then updated application files can normally be copied over an exisiting deployment, with the exception of configuration files and serial numbers, which will need to be back up and restored to the newly copied files:
[PARENT DIRECTORY]/wwwroot/web.config
[PARENT DIRECTORY]/wwwroot/serial_number.inf
The Icodeon SCORM Player makes extensive use of client (browser) side Ajax libraries which may be cached locally in the browser. When testing the product update it is necessary to ensure that browser caches are refreshed to ensure the updated libraries are used by the browser.
This guide provides details for installing and configuring the Icodeon SCORM Player .NET Edition for typical evaluation and production deployments.
The Icodeon SCORM Player provides the vendor with many customization options and extension points at which vendor "plug-ins" can be used to replace the default code provided by Icodeon. For support regarding further customization options and extension points go to http://support.icodeon.com

Support and help with the Icodeon Player
Table of Contents
The Icodeon SCORM Player comes with numeroous configuration and customization options. However, sometimes these options provided by Icodeon do not meet the specific needs of a particular vendor.
For further details of the database schema, and examples of report queries, please see the accompanying document plugin.html
Table of Contents
The SCORM specification, escpecially SCORM 2004, requires a lot of "state" to be maintained and processed and so there are inherent limits to the performance of SCORM run times.
Note also that the first request to the Icodeon SCORM Player, like all ASP.NET applications is atypical - there are application start up events associated with the first request that make this (once only) request slower than subsequent requests.
However, there are a number of configuration and deployment options that can be used to tune/optimize the performance of the Icodeon SCORM Player.
The Icodeon SCORM Player uses the Hibernate Object/Relational layer for persistence. At start-up this layer generates required SQL statements and caches them for use later at run-time. The following property can be added to the Hibernate configuration files that gives slower applicatio start-up (a one time event) but faster run time behaviour:
<!-- Optimizer is slower on initialization, but faster when running -->
<property name="hibernate.use_reflection_optimizer">true</property>
When the Icodeon Player is launched, the mandatory parameter called:
courseID
must be included in the launch URL or form parameters. Launch performance can be improved by adding the optional parameter called:
orgID
which is the identifier of the particular organization to be used within the SCORM manifest file. By specifying the organization identifier in the launch, the extra effort to
read in the manifest file and determine the identifier is avoided, improving launch performance.
When the Icodeon SCORM Player is launched, the manifest file for the particular SCORM package is read in and parsed. To avoid repeated reads of the same manifest file, the Player is configured to cache the file for faster reuse. Cache behavior is dependent on where the Icodeon SCORM Player reads the manifest file from: either from a directory that is below the root directory of the Player application, or from a different virtual directory in the same domain.
The Icodeon SCORM Player reads from a directory that is below the root directory of the Player application. The value of the parameter for LCMSEndPoint is a relative URL.
With this configuration, the Player supports dynamic checking of the cache against the manifest files on disk. If a manifest file is changed on disk, the file is automatically removed from the cache and replaced next time the manifest is requested by the application.
This configuration provides the best performance.
The Icodeon SCORM Player reads from a different virtual directory in the same domain. The value of the parameter for LCMSEndPoint is an absolute URL.
With this configuration, the Player cannot check to see if a manifest file has been changed at a remote location. If the file needs to be removed from the cache either the cache can be configured to renew after a period of time, or the manifest items can be removed from the cache manually. The cache expiry time can be set in the web.config file using the parameter value for manifestCacheExpiryMins. The cache can be cleared manually using the controls available on the application control panel at LMSAdmin.aspx
This configuration gives better performance when the manifestCacheExpiryMins is set to a higher value.