SharePoint is not broken - it just does't work

Help! My “Content and Structure” page in SharePoint Online is gone!

Reading Time: 5 minutes. This post was most recently updated on November 27th, 2018.First of all: you’re right and your eyes are serving you well. It has indeed disappeared. Starting in October, it’ll be hidden from end users. Microsoft is retiring the “Site Content and Structure” tool in SharePoint Online. Which kind of makes sense, since it’s quite an old feature – albeit, a very useful one. How to access “Content and Structure”? Even though Microsoft is retiring the Content and Structure tool, and has already hidden it from the UI, it’s still accessible. That’s supposing you had access to it in the first place […]

Brace yourselves! Notification emails from SharePoint are coming.

Create a new Alert to a SharePoint list

Reading Time: 4 minutes. This post was most recently updated on October 3rd, 2018.Alerts. That magnificent functionality in SharePoint, that let’s you get a heads-up anytime someone touches your precious documents (so you can go and revert the changes), or changes files in Style Library (so you can go and remove that pink custom CSS they tried to add). They are ancient, quite cumbersome and CERTAINLY not pretty, but quite reliable (and despite my expectations – they were included in Modern SharePoint, too!), so there’s really no reason to still keep using them. However, every now and then, they’re quite hidden from the GUI. […]

Get-MsolServicePrincipalCredential - how to get the expiration date for a clientId

Fastest way to verify your Client Id and Client Secret are valid with PowerShell

Reading Time: 3 minutes. This post was most recently updated on August 13th, 2018.So, you have a Client Id and a Client Secret, but don’t know if they work anymore? Maybe they are expired? Maybe someone removed them? No worries! We can use PowerShell to validate them easily! Solution By using PowerShell, it’s fairly straightforward to verify, that your Client Id and Client Secret work. See the snippets below for 2 different steps: First we validate, that the values work. If they don’t, let’s run another script to see if the Client Id exists but has expired. Validate your Client Id by trying to […]

Microsoft Azure logo

Solving Azure Web Application’s first load perfomance issues

Reading Time: 3 minutes. This post was most recently updated on October 9th, 2018.Is your Azure Web Application suffering from absolutely horrible load times every time someone accesses it for the first time every 15 minutes or so? Mine was. It was pitiful. I was developing a web-based service using EF6 and ASP.NET MVC 5, where all the assets were hosted in the Azure. Even though the app was reasonably lightweight and usually responded very fast, the first time someone accessed it in a while it took 20-60 seconds to load AND sometimes even timed out (especially with mobile clients). Load testing revealed only […]

SharePoint doesn't work as intended

Opening a web part page in maintenance mode

Reading Time: 3 minutes. This post was most recently updated on July 4th, 2018.Can’t access a web part page because of a broken web part? Yeah, that’s a classic issue – and it’s nicely ported into Modern world, too! In these cases, web part page maintenance mode comes in handy! There’s a query parameter available for accessing it. For whatever reasons, it’s different for Classic and Modern mode, though. Why make things easy if you can make them dificult, right? 🙂  Posts Related to “Opening a web part page in maintenance mode”:SharePoint-Teams -integration using a tabSharePoint Localization – a (somewhat) comprehensive how-to!The effect of […]

Let me explain SharePoint

How to show a Classic SharePoint page in dialog mode (without SharePoint’s full-blown chrome)

Reading Time: 2 minutes. Classic SharePoint actually has a very handy piece of functionality, using which you can hide most of the SharePoint chrome (like header and navigation), and hence make the page a lot more sleek. This is especially useful for showing the contents in a dialog window – which SharePoint also supports natively through JavaScript! This post describes how. How to show any (classic) SharePoint page in dialog mode? Pretty easy – it’s handled via a url parameter!  Posts Related to “How to show a Classic SharePoint page in dialog mode (without SharePoint’s full-blown chrome)”:SharePoint Localization – a (somewhat) comprehensive how-to!How to […]

Not sure if a bug or a feature

How to get rid of Foxit Drive in Foxit Reader

Reading Time: 3 minutes. If you’re like me, you’re not using Adobe Reader, but rather switched to Foxit Reader years ago, and never looked back. Foxit has a great PDF printer, it’s a great reader, but not perfect. The default save location is “Foxit Drive”, and it pops up any time you try to save your document, and at least for me interrupts my workflow. This post describes how to get rid of it, and make Foxit Reader even better! Description of the issue Okay, so Foxit Reader is pretty great, but they’ve got their difficulties, too. Being freeware, they kind of need to […]

Console output copypaste

How to output console or PowerShell transcript to a file in Windows

Reading Time: 3 minutes. This post was most recently updated on November 13th, 2018.Every now and then, you run into a situation, where you’ll need to somehow dump the console output (or transcript) of running a console application. I’m actually going to argue it happens a lot more often than one would think – in my case, any time a customer requires a webjob or a function, that one would normally deploy to Azure, being ran on the servers of the customer. This post describes, how to do that. Problem Something breaks or the app crashes, and the error is logged to event log… […]

Unified Groups aren't supported.

How to solve “Unified Groups aren’t supported.” -error

Reading Time: 2 minutes. This post was most recently updated on February 12th, 2018.When trying to use some functionality, that relies on Unified Groups, you’re getting errors in the console, similar to this: “Unified Groups aren’t supported.” In truth, this most likely means, that Unified Groups (that’s the internal/technical name for Office 365 Groups) is not enabled for this particular user. That breaks a bunch of different features for them, since the Graph API for Groups of course won’t work. This post describes one way to fix this issue! How to solve this? Posts Related to “How to solve “Unified Groups aren’t supported.” -error”:Getting Connect-MsolService (and other […]

How to SharePoint?

Using “DetectedLanguage” to return only localized results from SharePoint Search index

Reading Time: 5 minutes. Localization and targeting of content in multilingual SharePoint installations is always an issue. SharePoint offers a multitude of ways profile content based on user language (or other properties), but none of the solutions are fool proof. This post describes how to fetch only localized results from SharePoint Search index, which solves at least some of the issues. Description  SharePoint Search index can be used in quite a few different ways. Probably the most typical way is by searching on SharePoint, or using webparts like Content Search or Content Results. However, one can also build custom functionality, custom client-side liftups, webjobs, […]

Azure AD Login error

4 ways to fix error AADSTS65001 (The user or administrator has not consented to use the application)

Reading Time: 6 minutes. This post was most recently updated on November 18th, 2018.Fixing issues with Azure AD authentication for Enterprise applications can be tricky. This article contains multiple different fixes to an issue, where granting admin consent has somehow failed. Not all of the different solutions will work for all situations, though! That’s why I included a couple of different options to try. Changes are, one of them works for you! 🙂 What’s the reason for issues with Admin Consent (like AADSTS65001)? Imagine this: You’re trying to add or use an app, but the requires such permissions from your tenant, that only an […]

Azure Active Directory (Azure AD)

How to use the Azure AD associated with your SharePoint Online

Reading Time: 4 minutes. This post was most recently updated on October 28th, 2018.With the usual configuration of Office 365 and Azure, there might be multiple Azure AD (AAD) instances associated with your subscription. When creating registrations to whatever SharePoint-related apps that you might be using, if you create the registration to the wrong Azure AD, it can’t access the data in your SharePoint. Or at least without further configurations, it probably won’t get any data from your Office Graph API or whatever else you might want to use.  How to find the instance of Azure AD associated with your SharePoint Online It’s simple, […]

Mock Function call to force loading an assembly - how elegant!

New version of Microsoft.IdentityModel.Clients.ActiveDirectory (ADAL.NET) is out – good time to update!

Reading Time: 2 minutes. This post was most recently updated on June 4th, 2018.There’s now a new version of the assembly Microsoft.IdentityModel.Clients.ActiveDirectory available – plenty of reasons to update right away! Let me offer you one hot take on the matter since the earlier 3.x -versions of the package had some issues. Why bother updating? In an earlier post I described an issue I had with Microsoft.IdentityModel.Clients.ActiveDirectory.Platform not getting copied during the build in a referencing project. In 3.17.0, which the developers published this month, they fixed the issue! The new package actually contains separate DLLs for different platforms. In essence this means, that from C#/.NET […]

SharePoint Search Query Tool

Using SharePoint Search Query Tool

Reading Time: 4 minutes. This post was most recently updated on October 9th, 2018.If you’re working on SharePoint deployments, and aren’t familiar with SharePoint Search Query Tool, you’re probably doing something wrong. Or you’ve gotten a really troublefree tenant and simple requirements.. 🙂 At least for technical issues, it’s the #1 tool for debugging what’s in the index and what isn’t. This blog post describes how to use it to investigate SharePoint Online Search index issues. This blog post is about using SharePoint Search Query Tool to investigate search index issues in SharePoint Online. First of all, you can get the tool from here: https://sp2013searchtool.codeplex.com/. […]

Office Group

Site Mailboxes deprecated on SharePoint Online – use Office Groups instead

Reading Time: 2 minutes. This post was most recently updated on October 9th, 2018.Microsoft is deprecating, or even removing one of the widely used features in SharePoint sites – Site Mailboxes. For the end-user this might no mean much, but still requires some additional work from the administration side. In this post, I’m trying to give a rough outline, on what you (as an administrator/content producer) should do. So, what exactly is happening? Posts Related to “Site Mailboxes deprecated on SharePoint Online – use Office Groups instead”:SharePoint-Teams -integration using a tabSharePoint Localization – a (somewhat) comprehensive how-to!A cautionary tale of relying on the automatic […]

Delete site collection

Remove-SPODeletedSite – Actually removing a SharePoint Online Site Collection

Reading Time: 4 minutes. This post was most recently updated on December 4th, 2018.This post describes the actual, working and fast process of removing a site collection in SharePoint Online using the Remove-SPODeletedSite commandlet in SharePoint Online Management Shell (a flavor of PowerShell). Description Sometimes you need to get rid of a site collection you’ve created in SharePoint Online. The most typical example perhaps being removing the team site created for a group of people working together. That’s pretty simple and there are a few ways of doing that. For example, you might just go ahead, and delete the site from Site Settings (see below). Or […]

Sequence contains more than one element

Launching a new debugger instance from code in Visual Studio

Reading Time: 2 minutes. This post was most recently updated on October 9th, 2018.This post describes a quick solution to launching a new Visual Studio instance for debugging the code. Where I’ve found this exceptionally useful, has been in debugging code-first migration’s (one of the ways for database initialiation in .NET) Seed-method. It is by default undebuggable, as when you are running Update-Database you can’t really use a -debug switch or anything, and there’s really no way to launch the debugger. Hence the best you can do is using -verbose to get more information. However, if you actually want to see what is happening […]

System.InvalidOperationException'

Using Dispatcher to update values in GUI elements from a background thread

Reading Time: 3 minutes. This post was most recently updated on October 9th, 2018.Quick tip: If you’re developing something like a WPF app and you’ll need to update values on the User Interface based on a long-running operation that runs in a background thread (like depicted in my other blog post right here – that post is for a full-trust SharePoint solution, but the basic principle is the same!), you’ll probably need to use Dispatcher, or otherwise you’ll run into issues with the GUI elements being owned by another thread, and therefore forbidding access to them. This can result in an error like this: An […]

SharePoint_aint_broken

Updating files in an App Part (SharePoint Add-in)

Reading Time: 3 minutes. This post was most recently updated on October 9th, 2018.Luckily, SharePoint Add-ins (or App Parts, like they were called earlier) are slowly getting killed and rooted out of all the sites they once were deployed to – and I don’t think anyone’s going to miss them. However, as so often happens with legacy implementations, there will still be thousands of sites, where SharePoint administrators and developers will be responsible for maintaining and developing the solutions further. This will occasionally require updating app parts, which is a process that kind of sucks. Here I’ll try to simplify the process. Problem(s) Not all the […]