Configuring IIS for Silverlight Applications in DNN Modules


Purpose & Scope

Microsoft® SilverlightTM is a cross-browser, cross-platform plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web. Silverlight offers a flexible programming model that supports AJAX, VB, C#, Python, and Ruby, and integrates with existing Web applications. Silverlight supports fast, cost-effective delivery of high-quality video to all major browsers running on the Mac OS or Windows.

In most cases, hosters do not need to perform particular deployments to support Silverlight. However, check for the following basic items that could prevent Silverlight from functioning correctly.


MIME Types

In Windows Server 2008 IIS 7.0

All MIME types needed to support Silverlight are implemented by default in Windows Server 2008 IIS 7.0 and Windows Vista SP1.  Windows Vista RTM customers can add mime types by running ‘IIS Manager’, clicking on ‘Mime Types’, then clicking ‘add’ and adding the following mime types:

  • .xap     application/x-silverlight-app
  • .xaml    application/xaml+xml
  • .xbap    application/x-ms-xbap

Alternatively, you can add the following mime types to your %windir%\system32\inetsrv\config\applicationHost.config file in the <staticContent> section.

<mimeMap fileExtension=’.xaml’ mimeType=’application/xaml+xml’ />
<mimeMap fileExtension=’.xap’ mimeType=’application/x-silverlight-app’ />
<mimeMap fileExtension=’.xbap’ mimeType=’application/x-ms-xbap’ />

In Windows Server 2003 IIS 6.0

To enable IIS 6.0 in Windows Server 2003 or IIS7 in Windows Vista RTM with the appropriate MIME Types, add:

  • .xap     application/x-silverlight-app
  • .xaml    application/xaml+xml
  • .xbap    application/x-ms-xbap

Here is a VBS script you could run to enable each of these types:


if WScript.Arguments.Count < 2 then
WScript.Echo ‘Usage: ‘ + WScript.ScriptName + ‘ extension mimetype’
end if 

‘Get the mimemap object.  
Set MimeMapObj = GetObject(‘IIS://LocalHost/MimeMap’)  

‘Get the mappings from the MimeMap property.  
aMimeMap = MimeMapObj.GetEx(‘MimeMap’)  

‘ Add a new mapping.  
i = UBound(aMimeMap) + 1  
Redim Preserve aMimeMap(i)  
Set aMimeMap(i) = CreateObject(‘MimeMap’)  
aMimeMap(i).Extension = WScript.Arguments(0)  
aMimeMap(i).MimeType = WScript.Arguments(1)  
MimeMapObj.PutEx ADS_PROPERTY_UPDATE, ‘MimeMap’, aMimeMap  

WScript.Echo ‘MimeMap successfully added: ‘
WScript.Echo ‘    Extension: ‘ + WScript.Arguments(0)
WScript.Echo ‘    Type:      ‘ + WScript.Arguments(1)

If you copy and paste the code above into a VBS file and save it as ADDMIMETYPE.VBS the syntax to add each type would be:

ADDMIMETYPE.VBS  .xap  application/x-silverlight-app ADDMIMETYPE.VBS  .xaml application/xaml+xmlADDMIMETYPE.VBS  .xbap application/x-ms-xbap

Using the IIS Manager User Interface in Windows Server 2003 IIS 6.0

1. Go to Start\Administrative Tools and run IIS Manager, see figure below:

2. Right click on the server name and select ‘Properties’, see figure below:

3. In the Properties Dialog, click on the ‘MIME Types’ button, see figure below:

4. In the ‘MIME Types’ Dialog, click the ‘New’ button, see figure below:

5. In the ‘MIME Type’ Dialog enter one MIME Type at the time:

  • .xap     application/x-silverlight-app
  • .xaml    application/xaml+xml
  • .xbap    application/x-ms-xbap

    see figure below:

    For detailed information on Silverlight, visit


    Digg This

    Client found response content type of ”, but expected ‘text/xml’.

    Today we experienced ‘another’ issue with the Microsoft CRM 4.0 Email Router Configuration Manager. Like many of the other issues with the E-mail router tool, we only noticed when we stopped receiving email association icons in outlook.

    Normally for us this has ended up being the problem with the Configuration Manager xml configuration files, and has required us to restore them from backup in line with the Official MS fix.

    Unusually today the error lay elsewhere. With a test of the User and Queue access, we were receiving a message that looked like this:

    • Client found response content type of ”, but expected ‘text/xml’.
    • With an Event Log Entry Event ID: 0

    • #26090 – An error occurred while opening mailbox System.InvalidOperationException: Client found response content type of ”, but expected ‘text/xml’.
      The request failed with an empty response.
         at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
         at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
         at Microsoft.Crm.Tools.Email.Providers.ExchangeServiceBinding.GetFolder(GetFolderType GetFolder1)
         at Microsoft.Crm.Tools.Email.Providers.ExchangeWSConnector.OpenMailbox()
         at Microsoft.Crm.Tools.Email.Providers.ExchangePollingMailboxProvider.InitExchangeConnector()
         at Microsoft.Crm.Tools.Email.Providers.ExchangePollingMailboxProvider.OpenMailbox()
         at Microsoft.Crm.Tools.Email.Providers.CrmPollingMailboxProvider.Run()


    The long and the short is that we are using Microsoft Exchange Server 2010

    With an Email Router Configuration setup for the Rollup 9 supporting Exchange 2010 with Windows Authentication. The URL for the location of the exchange server in the Profile tool looks like this:


    Hitting that URL should normally reveal some XML data about the email box being interrogated:


    While the CRM Router Service was in error, the URL returned a blank result. This indicated that the Exchange Server 2010 service was at fault. The short term solution was to reboot the Exchange Server. We are yet to track down the exact cause.

    Bottom Line… Errors like this appear to be pointing to invalid data return from the Exchange Mail Server.

    Digg This

    Find a Stylist or Find a Salon

    We have been working with the crew from The Stylist Finder who have a website that allows you to find a stylist near to you.

    We have modified a DotNetNule module for them, to allow for the rating of Stylists and Salons to give a review.

    The search page allows for listing of Hair Stylists and Salon by state across the united states. As an example, this is a listing for Stylists in Chicargo IL or Stylists in Michigan for example. You can find a professional hair salon michigan.

    We look forward to improving the custom DNN Module that they original had developed by another DotNetNuke Module developer.

    Digg This

    DotNetNuke Performance Settings

    Much has been written about the DotNetNuke performance settings, and well frankly the is a lot of bad information running around the web about what all the settings mean and do.

    I’m not about to jump into a discussion, but rather tell you what we believe are the best settings for a public facing website hosted from a Windows 2008 servers without a proxy.

    First of all you will need to determine if the web server IIS settings have been configured to compress data servers from your site. This is easy.

    1. Login as host and look in the Performance Settings for the “Compression Setting” and ensure it is turned off.


    2. Then visit this site: 

    Enter your URL of the website you are playing with, and check compression. The result will look like this, if your content is uncompressed.


    or this if it is compressed.


    Take not of this for later.

    3. Go back to your site settings and set them to look like this:

    image DNN 4x

    image DNN 5x

    4. Depending on your compression test above set your site compression settings.

    If you site reported: Uncompressed

    If your site reported: Compressed (anyting)


    The idea is that, if your IIS is already compressing content, you do not want your DNN compression settings on. It will only slow down performance, however if your IIS is not handling compression, you will find that performance is much improved with compression on.


    These settings will give you good speed performance, but more importantly will not cause cache problems where users updated content but cannot see the changes that they have made. This is a big issued with CMS system that cache in the wrong way, and is a complaint of many DNN users.

    Digg This

    CRM 4.0 Internet explorer has blocked this site from using an ActiveX control in an unsafe manner.

    You may have noticed if you connect to a MS CRM 4.0 server after installing Rollup 7 or later, (including rollup 9), that you get a message:

    Internet explorer has blocked this site from using an ActiveX control in an unsafe manner.

    The cause of this problem is listed in this MS KB:

    The long and the short of it is a known problem in a situation where you have an established relationship with a CRM server using the Outlook plug in. If you then connect to another CRM server that has had the Rollup 7.0 installed, you will get the error message.

    Now the official Microsoft Solution to this problem is this: Note You can safely ignore this message and allow blocked content.

    Go Microsoft. Yet another totally inadequate solution to a known problem!

    What they should have said was this:

    1. In IE click tools / Internet Options

    2. Click the Security Tab / Trusted Sites

    3. Click Sites then Add the url of the CRM site giving the message.

    4. Click Close (not ok, or save as you might expect, but close).

    5. Click Custom Level

    6. Select Enable next tot he “Initialize and script ActiveX controls not marked as safe fro scripting.

    7. OK / OK

    If you refresh the browser the nasty annoying message is gone for good. This is a client side solution, and not a particularly good one, but hay; I don’t make this mess, just navigate a path around it!

    Digg This