RSinteract 3.6 Released!

The new version 3.6 release is live and ready for download!

full_features

New Features:

  • New formatting options including: Font, Font Size, Font Style
  • Instant formatting options from the field selection screen
  • New conditional formatting options
  • Indicator images in the report for creating simple instant dashboards.
  • Add tables and fields to existing SQL data sets
  • Selectable Join types for joining tables from the front end
  • Support for SQL Server 2008
  • Improved field selection in the new report wizard
  • New tree structure for creating SQL reports making it even faster and easier to find the data you want.
  • New tree structure in the SQL filter screen drop downs to allow quicker selection of filter field
  • Updated Look and Feel
  • Improved Custom Fields Editor
  • Report Branding support
  • SSL compatibility
  • 64 bit compatibility

There are also improvements to the admin tool, and a ton of bug fixes.

You can download the free and fully functional 30 day trial at http://www.rsinteract.com/download/eval.html

Dogfooding RSinteract

On any software project it’s important for managers to have some sort of system in place to keep track of how long tasks are taking and how much time has been spent collectively on a project. Gathering this data is fairly easy (with the right tool), for RSinteract we have a TimeBooking application written internally that collects the data. It’s fairly simple: client, task, comments, lots of drop downs for each half hour slot in the day. It works.

The problem is getting this data in a useable form to make decision on… but wait! We’re making a reporting tool. What better way to look at our time booking data than in a nicely formatted report!

Here’s an example of my time as booked back in the second week of December. I’ve quickly made a weekly time sheet using our _Reporting view in the time booking database with filters for employee and week commencing. I can now save this and look at anyone’s time for any given week! Clever eh?

dogfood

Using products internally like this is known in the industry as “dogfooding” as in “eats its own dog food”. This gives us a good idea of how our clients may use the software and also highlights problems that we might not otherwise pick up in our usual testing.

The XML page cannot be displayed

I’m just setting up RSinteract on a client’s 64 bit server which has Windows 2003 and SQL 2008. With most RSinteract installations IIS is installed as a prerequisite to Reporting Services but IIS isn’t needed for Reporting Services 2008. I guess this will become a common sticking point with SQL 2008 installations so here’s the solution…

The first problem I got was in the RSinteract installer (whoops, should have copied the error message) so we installed IIS and then RSinteract. When I hit the site I got this error:

The XML page cannot be displayed

Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.


A name was started with an invalid character. Error processing resource ‘http://myserver/RSinteract’. Line 1, Positio…

<%@ Page EnableViewState="false" Language="c#" ValidateRequest="false" AutoEventWireup="True" Codebehind="Main.aspx.cs" I…

I guess this is because IIS isn’t configured for ASPNET by default so I ran:

%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe –i

Which gave me the following error:

The error indicates that IIS is in 64 bit mode, while this application is a 32 bit application and thus not compatible.

So I made a slight change to point to the 64 bit .NET folder:

%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -i

After an iisreset I was now getting a 404 error from aspx pages, the final step was to open IIS (type inetmgr at the command prompt) and go to the “Web Service Extensions” node and enable ASP.NET v2.0.50727. Another iisreset for good measure and we’re now up and running:)

Indicators Demo

Here’s a quick demo of the new indicators feature. It’s a pretty trivial one but shows the potential.

Could not load file or assembly 'Microsoft.ReportingServices.Interfaces'

In the last week we’ve had three clients report a problem with our December release when running on Windows Server 2003 64 bit.

Server Error in ‘/RSinteract’ Application.

Could not load file or assembly ‘Microsoft.ReportingServices.Interfaces’ or one of its dependencies. An attempt was made to load a program with an incorrect format.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.BadImageFormatException: Could not load file or assembly ‘Microsoft.ReportingServices.Interfaces’ or one of its dependencies. An attempt was made to load a program with an incorrect format.

It seems Microsoft.ReportingServices.Interfaces.dll version 9.0.1399.0 won’t load on a 64 bit server, the hotfix is to replace it with this version:
http://www.rsinteract.com/download_files/Microsoft.ReportingServices.Interfaces.zip
The default location is C:\Program Files (x86)\ICS\RSinteract\Website\bin\
IIS should be reset afterwards.

This issue will be resolved in the next big release in February 2009

Sneak Preview

Here’s a sneak preview of the new look and feel and some of the new features included in the upcoming major release of RSinteract.

rsinteract_look_and_feel

  • New formatting options including: Font, Font Size, Font Style
  • Instant formatting options from the field selection screen
  • New conditional formatting options as above and more!
  • Indicator images in the report for creating simple instant dashboards.
  • Selectable Join types for joining tables from the front end
  • Join tables direct from the edit section screen, allowing the addition of data to existing SQL reports.
  • Support for SQL Server 2008
  • Improved field selection in the new report wizard
  • New tree structure for creating SQL reports making it even faster and easier to find the data you want.
  • New tree structure in the SQL filter screen drop downs to allow quicker selection of filter field
  • Updated Look and Feel
  • Beta of Windows SharePoint Services support
  • Improved Custom Fields Editor
  • Report Branding support
  • The much missed previous button is back (excuse the pun)!
  • Plus lots and lots of bug fixes!

Let us know if you like it or not by commenting!

The Double Hop Problem

Let me start by apologising for the lack of a post in the last week or so, I have been really busy with the new, improved version of RSinteract (sneak preview in the next couple of weeks, watch this space).

One of the issues we have experienced time and again with RSinteract is a scenario where the ReportServer/Database or Analysis services is on a different machine from RSinteract as demonstrated in the following diagram. The problem manifests itself as an authentication issue when Reporting Services tries to retreive information from the Database or Analysis server because Active Directory credentials expire after the first hop, in this case from RSinteract to Reporting Services.

double hop diagram

Microsoft are calling this the “Double Hop” problem. The reason for Reporting Services’ and Analysis Services’ lack of integration out of the box is “in the interest of security”. Active Directory uses Kerberos under the hood which can be configured to pass credentials between web apps or not. To get this working with RSinteract or indeed any ASP.NET application you need to correctly configure Kerberos delegation.

I’m having trouble tracking down the steps for Reporting Services, the link I had has gone dead since I began writing this post

So here’s the steps to configure your Analysis Services (from Business Intelligence and Agile Development Blog):

  1. Download and install the SetSPN utility (Either from the Windows Resource kit, or from http://www.microsoft.com/downloads/details.aspx?FamilyID=5fd831fd-ab77-46a3-9cfe-ff01d29e5c46&DisplayLang=en)
  2. SETSPN is used to configure a “Service Principal Name”, which is required by Kerberos
  3. Create a Service Principal Name (SPN) for the Analysis Services Instance (on the AS server)
  4. (If AS is running as a domain account) setspn.exe –A MSOLAPSvc.3/
  5. Configure Active Directory Settings
  6. All users that are connecting to Analysis Services through the intermediate host need to be allowed to use Kerberos Delegation (“Account is sensitive and cannot be delegated” must be unchecked)
  7. The “Account is trusted for delegation” setting must be checked for each user and each service account used in the process.
  8. The “Trust computer for delegation” setting must be checked for each computer used in the process
  9. Configure IIS Settings for the Virtual Directory hosting the application (or SharePoint site)
  10. The Authentication must be set to “Integrated Windows Authentication” or “Basic Authentication”
  11. The application protection level must be set to “High (Isolated)”
  12. The impersonation level for COM+ must be set to “Delegate”
  13. The COM+ application identity must be set to an account where “Account is trusted for delegation” is checked.
  14. Connection strings must include SSPI=Kerberos
  15. Connection strings CANNOT use IP Addresses

Here’s some more information pertaining to the bug:

I’ll update this post as soon as I find the information for configuring SSRS.

Obsolete Attribute and XML Serialization

   1: public class MyClass
   2: {
   3:     private string _internalProperty;
   4:     private string _newProperty;
   5:
   6:     [Obsolete("This is no longer required, but needed for backwards compatability")]
   7:     public string Property
   8:     {
   9:         get { return _internalProperty; }
  10:         set { _internalProperty = value; }
  11:     }
  12:
  13:     public string NewProperty
  14:     {
  15:         get { return _newProperty; }
  16:         set { _newProperty = value; }
  17:     }
  18:
  19: }

 

This is an interesting little anomaly in the way XML Serialization handles the “Obsolete” attribute on class properties when serializing to and from XML. The attribute is treated as an “XmlIgnore” attribute, meaning that the property is not serialized. It is well documented that adding the aforementioned attribute to a property in .NET 3.5 will cause this behavior, however, it is not mentioned in the same MSDN page for .NET 2.0 on the same subject.

This one caught me out. Apparently the only two ways to fix it are: to take the attributes off or use the “ShouldSerializeX” method constructs as demonstrated below…

 

   1: public bool ShouldSerializeProperty()
   2: {
   3:     return true;
   4: }

 

Unable to load client print control

UPDATE: Further information on alternative fixes has come to my attention via StackOverflow.

This new error has popped up since Microsoft released the update KB956391.

Unable to load print control error

The update is for a vulnerability in the GDI+ DLL which allowed a malicious user to execute code on the client machine (good old! – ed). The fix uses ActiveX Killbits which is a setting that Internet Explorer checks for each ActiveX control. If the Killbits are set, IE refuses to load the control.

The update set the Killbits for the version of the RS Client Print ActiveX control which is used by the version 8.0.0.0 of the ReportViewer which is referenced by RSinteract (and Report Manager). Thus the printing will not work in either.

To fix Report Manager you need to apply the ReportViewer SP1 patch and the Security Update for SQL Server SP2 (KB954606). Once this is working again you can fix RSinteract.

To fix RSinteract you need to apply another Security Update for SQL Server SP2 (KB954607).

Let us know if this fix doesn’t work for you.

First Post

This is just an idea I’m trying out, I want more people to be excited about the work that I do and I think this blog could be a good way to do that!

Bear with me while I clean up the interface and we’ll see how it goes!

Wish me luck!

Follow

Get every new post delivered to your Inbox.