Aye Aye iFrame: Quest for the Origin of a Mystery Response Header

For the past year I’ve been working on an enterprise search solution for a Canadian federal government client employing SharePoint Server 2013 / 2016 and integrating with line-of-business data via Business Data Connectivity Services (BCS, formerly BDC) with a BDC .NET Connector. The elements of this solution, notably SharePoint Search and Business Data Connectivity Services, encompass a complex set of technologies which would easily occupy a blogger for months if not years. On this occasion we’ll delve into one small but important part, creating BDC Profile Pages in a host header / host named site collection context.

Some time ago one of my colleagues reported an issue in our development and testing environments; when we attempt to generate a profile page for an external content type in the BDC service application:

0 View External Content Types.crop

We get this warning:

1a Create--Upgrade Profile Page - Dialog - This content cannot be displayed in a frame

Close up:

1b Create--Upgrade Profile Page - Dialog - This content cannot be displayed in a frame.crop

With the text:

This content cannot be displayed in a frame
To help protect the security of information you enter into this website, the publisher of this content does not allow it to be displayed in a frame.
What you can try:
Open this content in a new window

Continue reading

Sorry, something went wrong, and Don’t forget the F12 developer tools

Traditionally as a SharePoint developer or designer your skills and toolkit were quite different from those of a standard web developer. While that used to be essential to your success, in today’s web-centric world as you transition your skills it might mean you overlook the obvious when troubleshooting. Recently I was helping a developer colleague resolve one of those eponymous “Sorry, something went wrong” messages that SharePoint 2013/2016 is so famous for, when it drove home this point: Always start with the web-dev basics!

1 - Sorry, something went wrong

Continue reading

Ping, Ping, Ping, Are You There?

As a SharePoint Technology Architect you have to know a little bit of everything in the platform stack from Windows Server to Active Directory to DNS to networking, and much more, a veritable jack-of-all-platform-trades. On a recent project I was working with an IT Pro to prepare a new server virtual machine for a proof-of-technology for SharePoint 2016 when I was reminded of this.

This project teanm is hard up for infrastructure so we are scrounging for virtual machines and have to make do with a refurbished hand-me-down VM. The server team re-imaged the VM with Windows Server 2012 R2 as is required for SharePoint 2016. The initial sanity check of the refurbished VM is good, we can RDP to it and Server Manager Dashboard shows a healthy server, all services running normally.


Next  step is we have to request a DNS entry for the Central Admin site for SharePoint 2016, hence we need the IP address(es) of the new VM. As a quick step I ping the VM rather than RDP’ing to inspect its network adaptor configuration:

0 ping

Whoa, ping does not respond! How can that be? I just RDP’ed to the server and it was fine.

Continue reading

Disabled Central Admin

I love working with SharePoint Server because there is never a dull moment on the job; the product is so rich and varied, and requires considerable knowledge of other systems and services, such as Active Directory, DNS, networking, SSL, SQL Server, etc. Working with SharePoint Server is a guarantee of learning something new nearly every day. On this day I discover a truly unique SharePoint error message.

I am performing routine maintenance on a SharePoint 2016 farm, cleaning up deprecated service accounts, to bring the farm into alignment with our project’s platform architecture security model. Using Central Admin (running on port 2016 of course!) at one point I need to refresh a page like so many times in a day but this time it comes with a little surprise, the page returns completely blank, with the bare minimum possible HTML. Whoa, what is going on?!CA home - no content

Well, I think, maybe it is just transient, so I hit the F5 refresh to get a clearer sense of the status of my SharePoint farm. Ooo ee, HTTP 404 Not Found. Eek, Central Admin is DEAD!

Continue reading

Cloud Development for Community Projects

How CloudShare has enabled me to contribute to SharePoint community projects

Until recently if you wanted to contribute to an open source or community-based software project in your spare / volunteer time it often meant having to build a full-scale software development environment on your home / personal computer, including substantial CPU cores / RAM / disk hardware and numerous software licenses, with a potential cost of thousands of dollars. Fortunately the recent rapid growth in cloud-based IaaS / PaaS offerings such as CloudShare, Microsoft Azure and Amazon Web Services to name but a few, has dramatically changed this situation. Now the software hobbyist or software engineering professional volunteering their time can contribute to nearly any project with no more equipment than a modern web browser.

These cloud-based IaaS / PaaS offerings are a huge boon especially for community projects targeting enterprise software systems such as Microsoft SharePoint Server and Microsoft Dynamics CRM. Both SharePoint Server 2013 and the upcoming 2016 versions have hardware requirements that generally exceeded the specs of most home office computer equipment, for example a single server farm with all services requires 24GB RAM. Furthermore, when your focus is on rapidly enhancing a community project then the time and effort to install, configure, tune, and patch server software such as the operating system, database server, and SharePoint Server is an overhead cost that does not directly advance the project.

Why CloudShare?

Two important consideration when I’m volunteering my spare time on an open source or community project are:

  • Ready availability of a pre-configured virtual machine suited to the community project’s technology stack – so I don’t have to spend hours or days building up a standard development environment before I can even begin making my volunteer contribution
  • Rapid provisioning and resumption of the virtual machine – which allows me to eke out useful contributions in spare moments of 20-30 minutes at a time

For my cloud-based custom software development platform I chose the CloudShare Platform-as-a-Service (PaaS) product because it offers the best fit for me as an independent software developer.

Continue reading

Instagram Spam from Dummy Account with My Email Address

Like any savvy Internaut I am vigilant to identify and delete spam email so I always carefully review any unexpected item that lands in my inbox before clicking on it. I was suspicious when this email appeared the other day as I am not an Instagram user:


I’ve blacked out personal identifying information in these screen snaps.

My first thought was this item is not a legitimate email from Instagram but I couldn’t find any obvious indication of this. The structure and format of the email and all the links seemed to indicate it was legitimate. I even looked at the message source; the headers and delivery routing all seemed to be appropriate given my limited knowledge of such things:

Continue reading

Bulk Provision User Profiles in a CloudShare SharePoint VM for Demo/Test Scenarios

A CloudShare hosted environment is a great way to quickly and easily provision virtual machines for demo and testing. In order to present realistic demo and test scenarios you will want a variety of Active Directory user accounts and SharePoint user profiles including My Sites profile information.

A brand new CloudShare environment virtual machine comes with only a few system accounts defined, eg Administrator. You can certainly develop and provision additional user accounts and profiles yourself, along with the scripts to repeat the provisioning each time your environment is refreshed. However, this will take time and effort, which you would probably rather spend on your core business activities. So why not leverage and re-purpose a ready-built alternative from Microsoft.

Microsoft publishes “content packs” to provision several of its popular demo environments (WingTip, etc) that you may have seen at the SharePoint Conference and in other training and demo presentations. These content packs generally include all the installers, scripts, and user accounts data files necessary to fully automate deployment, configuration and provisioning of the various bits of server infrastructure.

In our case we have the server infrastructure already deployed and configured thanks to CloudShare. So we are going to cherry pick out of the content packs just what is necessary to provision a predefined set of user accounts into Active Directory and user profiles into SharePoint. This will save us quite a bit of time over developing similar capability from scratch.

Before starting, download the required content packs from CodePlex. From the SharePoint 2013 Business Intelligence Demo Builds with SQL Server 2012 SP1 CodePlex project,


download the following two content packs and extract their zip archives:

Don’t be confused by the name of this CodePlex project. The various content packs in this project can be used somewhat independently of one another, for our purpose to provision Active Directory user accounts and SharePoint user profiles in a CloudShare environment SharePoint farm.

Continue reading

Presenting at SharePoint Summit Toronto 2014 on Tue May 27 on “How to be Social in SharePoint 2013”

I’ll be speaking at the SharePoint Summit Toronto 2014 on Tuesday, May 27, 9:50am on the topic How to be Social with My Sites in SharePoint 2013.

In this session learn about the social features in SharePoint 2013, why you will absolutely love them, and how they will make you more productive. My Sites and user profiles have huge improvements, follow sites, people and documents, micro-blogging with mentions and hash tags, ratings and likes, People search, and other professional social network capabilities.

If you are going to be at the conference be sure to look out for me and say hi.

Presenting at IIBA Ottawa-Outaouais Breakfast Roundtable on Thu May 1 at 7:30am

Come out to hear me present at the IIBA Ottawa-Outaouais Breakfast Roundtable this coming Thursday, May 1 at 7:30am on the topic of “Is a Business Analyst required on SharePoint projects?”

SharePoint offers the promise of instant functionality for all sorts of business needs: collaboration, document management, Internet/intranet web content management, search, business intelligence, etc. In addition there are seemingly endless possibilities for configuration and customization, much of it easily accessible to business and power users. Do SharePoint deployments and customizations need formal requirements gathering, business modeling, and functional analysis as part of the project plan? Or is it all about the technical infrastructure and IT configuration? Let’s discuss some real-world project scenarios and share our experiences to answer this question.

This is an informal, interactive event, the first 30 minutes is for open networking, followed by the structured roundtable at 8:00am. The event is free and open to everyone whether or not you are a member of IIBA, the International Institute of Business Analysis.


Presenting at SharePoint Saturday Ottawa 2013 on Sat, Nov 23 at 8:30am

Come out to hear me present at SharePoint Saturday Ottawa 2013 this coming Saturday, November 23 at 8:30am on the topic of “Practical SharePoint 2010/2013 for the .NET dev: Crash course on coding in SharePoint for the .NET dev, what is different and what tools you need to have.”

In this session you will learn how to transfer your .NET experience into effective designing and coding for SharePoint 2010/2013. Learn what tools and tips will help make the transition easier.

Some topics we will cover:

  • 2013 app model vs packages & features
  • APIs – client-side, server-side, OData/REST,
  • getting data & documents into and out of SharePoint
  • debugging
  • logging
  • deployment
  • LINQ in & for SharePoint
  • managed metadata vs code tables vs lists