Jeff Pries

Business Intelligence, SQL Server, and other assorted IT miscellany

Category: .NET

Windows 10 Upgrade – Part 5: SSRS Report Preview Error in SSDT-BI

Windows 10Having just recently successfully installed the current release of SSDT-BI (the current version as of this writing is based on SQL Server 2014 32-bit and the Visual Studio 2013 Integrated Shell), it was time to finally open up some SSRS (SQL Server Reporting Services) projects and get to work.

For anyone that use used the report Preview button within SSDT-BI, you know getting it to work can be a bit dicey.  Microsoft has changed the internal behavior of what happens behind the scenes when the preview button is pressed, and that has created a number of problems.

No surprise, the first time I pressed the preview button, I was greeted with this:

Report Preview error in SSDT-BI

Report Preview error in SSDT-BI

Well, that’s not good.  I should preface this by saying that I did two significant things to ultimately resolve this issue.  It’s possible that only the second one was needed, but I’m going to list them both (as well as a workaround) just in case it’s helpful.

Continue reading

Windows 10 Upgrade – Part 4: Cannot Install SSDT-BI (Install Error)

Windows 10With all of my driver, aesthetic, and networking issues worked out in previous parts, it was time to get down to business.  After all, I’m going to have to do some work from this laptop at some point, right?  And in the Microsoft Business Intelligence world, that means I’m going to need SSDT-BI (SQL Server Data Tools – Business Intelligence).  As of this writing, the current version of SSDT-BI is still based on SQL Server 2014 32-bit with the Visual Studio 2013 Integrated shell.  It’s expected at some point, with the release of 2016, there’ll be a new and improved version more tightly integrated into Visual Studio 2015, but for now, if you want to edit SSRS projects, this is the way to go.

I started out by downloading the currently release of SSDT-BI, which is 32-bit only (regardless if you’re using a 64-bit machine).

I encountered my first minor hurdle during the initial install.  Since SSDT-BI is based on SQL Server 2014 32-bit, it doesn’t play nice with SQL Server 2014 64-bit.  I wasn’t thinking clearly and when presented with the option to “Perform a new installation” or “Add features to an existing instance,” I first tried to add features and the installer yelled at me for having an incompatible installation already in place (SQL Server 2014 64-bit).  So the correct answer is Perform a new installation, which will put these 32-bit components side-by-side with any existing 64-bit components.

After selecting the right installation type and checking the box for the SQL Server Data Tools – Business Intelligence for Visual Studio 2013 shared feature to install, I thought I was on easy street.  Boy was I wrong, the fun was just beginning.  While the installer was running, it eventually failed with this error:

SSDT-BI Install Error - VS Shell Installation has failed with exit code -2147205120

SSDT-BI Install Error – VS Shell Installation has failed with exit code -2147205120

That’s not good.  I immediately tried all the basic IT things before going deeper.  I rebooted and retried the installation, this time running as administrator.  Same error.  Time to go deeper.

Following the error dialog is more detail regarding the error.  To any developer that writes an installer that includes the option to view detailed log files….THANK YOU.

SQL Server Data Tools - Business Intelligence for Visual Studio 2013 installation completed with failures

SQL Server Data Tools – Business Intelligence for Visual Studio 2013 installation completed with failures

Continue reading

A Modern Day Balloon Race (GCInsight Geocaching Analytics – Part 6)

GCInsightA Modern Day Balloon Race (Geocaching GCInsight Analytics – Part 6)

They’re not as popular as they once were, mostly for environmental reasons, but when I was in elementary school, balloon races were annual events which were tons of fun.  For anyone that hasn’t had the experience in participating in a balloon race, each participant gets a regular helium balloon with an attached string and postcard.  They’re all released at once and the balloons spread sometimes hundreds of miles.  If a postcard is found, it’s reported or mailed back and whichever one gets found the furthest away wins.  While balloon races are great fun, there are some environmental concerns with releasing hundreds of balloons (which essentially become trash) regularly into the wild.

Balloons released in a balloon race

Balloons released in a balloon race

So, what is a more modern and environmental way to have the same kind of fun?  Believe it or not, Geocaching has the answer.  Geocaching is a game in which millions of physical containers are hidden throughout the world.  These containers are tracked on a website which, with each listing, contains GPS coordinates of the geocache and an inventory of what is inside it. Trackables, or travel bugs, are physical items, each of which has a unique tracking code, which can be placed inside of a geocache.  Each trackable item maintains a history of the geocaches (and their locations) that it has been placed within — and that becomes a virtual balloon for our balloon race.

Continue reading

Custom Dashboard Development – Part 3: SignalR Design

Microsoft_.NET_Framework_v4.5_logoIn my previous posts, here and here, I discussed my objective to create a custom dashboard solution in order to meet a number of requirements as well as a method for creating that solution using a traditional Web Services approach.  In this approach, the client is wholly responsible for requesting all of its updates from the server whenever it needs them (typically on a set timer).  In this post, I’ll create the same dashboard but use a different technology, SignalR, for performing the data communications.  Much of the solution will be the same or similar to the previous solution, however the back-end is fundamentally different.

With the SignalR approach, rather than the client being responsible for requesting data updates from the server, the server maintains a connection with the client and pushes them to the client on an “as needed” basis.  This basis can be timed (such as sending an update once every 5 minutes) or it can be triggered (such as sending an update whenever data changes.)  In this example, we’ll be using the timed approach for parity with the previous solution.  As an extra benefit to the SignalR solution, when multiple clients are connected to the same dashboard, they will all display the exact same data and refresh at the exact same time (as they are not maintaining their own individual update timers.  The following diagram gives a quick illustration of the data communications between the clients, web server, and database server:

Continue reading

Custom Dashboard Development – Part 2: Web Services Design

Microsoft_.NET_Framework_v4.5_logoIn my previous post, I discussed my objective to create a custom dashboard solution in order to meet a number of requirements.  In the process of researching how I would create the solution, I made multiple choices pertaining to the technology and design which would be used to create the dashboard.  I chose to implement both a traditional communications model utilizing web services where the client is responsible for requesting data refreshes as well as the SignalR communications model where the server pushes updates to the client.

To recap, I made the following design decisions for the application:

  • Use a custom developed application instead of an off-the-shelf product
  • Use web-based technologies within the Microsoft ecosystem
  • Use ASP.NET MVC5 with C# and HTML/JavaScript
  • HTML/JavaScript based chart control library — jChartFX

Continue reading

Could Not Load File or Assembly Microsoft.Web.Infrastructure

I’ve gotten the error message “Could not load file or assembly ‘Microsoft.Web.Infrastructure, Version=…’ a few times lately when deploying new ASP.NET MVC5 projects to an IIS7.5 or IIS8 web server via the Web Deploy method within Visual Studio 2013, so I thought I’d put up this quick article on how to resolve it.

This error occurs for me when publishing a new MVC5 project to a web server (it does not occur when previewing the project locally from my machine).  Initially, after deploying, I’m greeted with the very vague error message:


Continue reading

Custom Dashboard Development – Part 1: Introduction

Microsoft_.NET_Framework_v4.5_logoI just recently finished a series of custom development projects which required me to revisit the programming world from which I once came.  Programming is something I started doing when I was very young and have always enjoyed.  While I’ve done plenty of scripting, Powershell, and T-SQL in recent years, my current job roles have had little need for true programming skills until recently.  And wow, things have changed!  In this series of posts, I’ll be going through my process for choosing a technology and developing a custom dashboard solution as well as some of the lessons I learned along the way.  Here in Part 1, I plan to cover my goals for the dashboard as well as how I chose the platform I did.  In Part 2, I’ll cover the more traditional of the two methods I explored and in Part 3, I’ll cover a SignalR solution.

Whenever learning or refreshing skills, it always helps to have a goal.  In this case, my objective was to create a dashboard solution with the following objectives:

  • Display near real-time data from a OLTP SQL Server data source
  • Be aesthetically pleasing as it will be viewed on multiple large screen displays 24/7
  • Refresh gracefully with no user interaction or display interruption while refreshing

Continue reading

© 2018 Jeff Pries

Theme by Anders NorenUp ↑