List of all posts

This page contains a list of all published posts on my blog site. It’s a pretty long list, and it’s just going to become longer 🙂 You may want to select some of the categories from the menu to get fewer results or maybe use search!

Actually, using search is a GREAT idea! Go ahead and do that. You can find it on the right-hand sidebar of the page. I’ve tried to tweak it in a way, that it’ll actually return relevant results. It’s not based on that annoying ad-littered custom Google engine anymore – but rather a tweaked version of what’s built-in to WordPress.

Or you can just do what I always do when I remember I have documented some weird workaround but can’t find it: Go ahead, and search for something like this.

Give it a try!

 

All posts from newest to oldest

 

  • Speaking at SPS New England on 10/20! October 17, 2018 Another exciting announcement to make – I’ll be speaking at SharePoint Saturday New England on 20. of October in Boston!My session about Microsoft Flow, Azure Functions and a bit of Cognitive Services was accepted for the developer track. I’ll be presenting at 9:00 – 10:15 AM in room Cranmore. There’s a lot of awesome sessions and other awesome speakers, and I’m honored to share with the community what I’ve learnt lately while playing with some of the latest and greatest of Microsoft’s tools! 🙂Citizen developer tools are not just for citizen developers!It’s the same session I’ve had at a few ...
    Read more!

  • Thanks for coming to my session at SPS New England 10/20 ! October 20, 2018 I had the privilege of speaking at SharePoint Saturday New England in Burlington (near Boston) on 20. of October. Thanks for the super active crowd! A lot of difficult (e.g. good) questions and great conversations.#Roadtrip’ping to Boston for @SPSNewEngland with the one and only @baywet who just landed from his trip to #MWCP18 – what a champ!Really looking forward to the awesome sessions and meeting all the people at #SPSNE tomorrow! 😁Session MaterialsGeneric stuff:Useful documentation:https://azure.microsoft.com/en-gb/campaigns/developer-guide/Code is available online:https://github.com/koskila/KeyphraseExtractionhttps://github.com/koskila/CitizenDeveloperToolsDemosDescriptions of the cases:Case 1: https://l.koskila.fi/metadatahackMy slides for SPSNE18The slide deck should be visible below. If it isn’t, you can find it here.https://www.slideshare.net/AnttiKoskela/citizen-developer-tools-session-at-sps-new-england-10202018Demo VideosI ...
    Read more!

  • Ignite 2018 recap: What’s new for Azure Functions? October 16, 2018 Ignite 2018 is done and dusted, and it’s a good time to quickly recap what’s new for Azure Functions in the coming months. They’ve certainly been getting a lot of love from Microsoft, which is GREAT!New features for Azure FunctionsThere was a bunch of exciting new things announced! Not all of the things in this blog post are necessarily completely new – but rather reached General Availability. Let’s go through them one by one…New “Premium Consumption” pricing tierThis was a completely new thing, and while really useful, was kind of a curve ball. If you ask me, this might be ...
    Read more!

  • Problematic behavior of web.AddSupportedUILanguage(int lcid) in SharePoint 2013 and 2016 October 10, 2018 Every now and then, an API or a method call comes along, that you need to be very careful with. “Microsoft.SharePoint.Client.Web.AddSupportedUILanguage()” seems to be one of them. In this post, I’ll try and document my findings and workarounds for said method! Issues and solutionsIn SharePoint 2013, web.AddSupportedUILanguage doesn’t actually add new languagesThis is a known bug in SharePoint 2013. Adding a new language using just this method call doesn’t work, unless the targeted web already has one or more alternate languages.As a workaround, call this first:clientContext.Web.IsMultilingual = true;clientContext.Web.AddSupportedUILanguage(1035);clientContext.Web.Update();clientContext.ExecuteQuery();After that, the languages should be added.See more:http://blogs.msdn.com/b/vesku/archive/2014/12/15/latest-api-updates-in-client-side-object-model-dec-2014-cu-for-sp2013.aspxhttps://github.com/SharePoint/PnP/tree/master/Samples/Core.Settings.LocaleAndLanguageMy theme completely blows up after adding a ...
    Read more!

  • Fixing “The following functions are in error: Object reference not set to an instance of an object.” error in Azure Functions October 2, 2018 Let me start this article, by reminding everyone that Azure Functions are awesome, and you should use them despite some hiccups. Having said that, let’s fix some errors!In the beginning of September 2018, Microsoft started pushing out breaking changes to Azure Functions 2.x. They had announced this a full month in advance, so they expected everyone in the world to update their Azure Functions to avoid the functions from breaking.I guess, however, that in real life, a month is not that much. Me, and a bunch of other people on the internet, ran into some issues with our Azure Functions. ...
    Read more!

  • How to access Azure Function App’s settings from C#? September 26, 2018 Different versions of Azure Functions have different ways to access the Azure Function settings. This is another little thing, that I always forget – so better document it somewhere!So, this post describes, how you can access the function’s Application/Environmental settings/variables from your C# code.Accessing the settings in Azure Functions SDK 1.xThe 1.x generation of Azure Functions SDK uses the very traditional ConfigurationManager for accessing the Environmental variables or Application Settings. An example:var clientId = System.Configuration.ConfigurationManager.AppSettings;var clientSecret = System.Configuration.ConfigurationManager.AppSettings;var aadDomain = System.Configuration.ConfigurationManager.AppSettings;Nice and easy! ConfigurationManager is the good-old way of getting your hands on the settings. It exploses AppSettings, which is ...
    Read more!

  • How to interpret SharePoint’s view count managed properties (like “ViewsLast1Days”)? September 18, 2018 Have you ever wondered, how SharePoint’s Managed Properties for Usage & Analytics info actually work? There are all these nice properties available for getting view counts for different items in SharePoint’s search index, but they all seem to act like crazy. And they are pretty nonsensical… And not very well documented!In this post I’ll try to make some sense on how you can use them in programmatic scenarios. Read on…What properties are we talking about?Ah, yeah. That might be a good way to start the post. We’re talking about all the managed properties, that SharePoint populates for view counts. There ...
    Read more!

  • Properly checking if an item in a folder is a Directory or not in PowerShell September 5, 2018 Got a great tip from a colleague, on how to properly check if an item is a file or a directory. In one case, we weren’t really ever sure, if another script had finished its running and unzipped a certain zip package into a folder – and we had to verify it had, before continuing the execution. Our initial implementation worked most of the time… But not quite always. The purpose of this blog post is to explain how we found a pretty well working and elegant solution!ProblemIn this particular case, we were testing items for being directories with the ...
    Read more!

  • Disabling requests to WsaUpload.ashx (Customer Experience Improvement Program) August 28, 2018 So, I’ve gotten this question from a lot of customers and partners, and I thought it’s worth clarifying the case a bit. “I’m seeing a lot of requests these requests to WsaUpload.ashx. What do they matter? They seem to degrade the performance – so what can I do about them?”That’s a great question! Let’s see what it is, why it exists, and what we can do about it!Note: If you’re not THAT interested in the details about the data going back and forth, or the background of the data collection, you can just check out the solution by clicking this link!DescriptionWhen ...
    Read more!

  • Create a new Alert to a SharePoint list August 22, 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. This post describes how to access them on pretty much ...
    Read more!

  • Fastest way to verify your Client Id and Client Secret are valid with PowerShell August 9, 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!SolutionBy 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 connect with itWe can validate the Client Id and Secret, by using Connect-PnPOnline to ...
    Read more!

  • How to get the user count for Azure AD Enterprise Application August 1, 2018 Have you ever tried to find out the number of users of an enterprise application in your Office 365 tenant? This could be needed for multiple different reasons: maybe your organization is paying for the app and you want to know who’s actually using it, maybe the usage is required by a company policy and it’s useful to know if organization’s members are actually using it, or maybe you just want to know about the user adoption of an app.For apps with under 100 users it’s easy – just open Azure AD and check the user count. For more popular ...
    Read more!

  • Solving “Tenant app deployment is only supported in the app catalog site.” -error July 31, 2018 Got an error “Tenant app deployment is only supported in the app catalog site. The current site is not the app catalog site.”, even if the current site very much IS an app catalog site? There might be an easy fix!ProblemImagine this: you browse into your fresh SharePoint tenant, open the app catalog, click on an app, try to deploy it, and out comes this error.Tenant app deployment is only supported in the app catalog site. The current site is not the app catalog site.Yes, while trying to deploy an app from app catalog, you get an error that the ...
    Read more!

  • Solving “Sorry, your files couldn’t be uploaded. The upload might be too large or the server might be experiencing high network traffic.” in SharePoint July 24, 2018 This is one of the kind of weird issues that you don’t really run into in your own development environments, but that you more often run into when you actually have non-godlike permissions. Oh, the woes of trying to use SharePoint with anything less than farm/global administrator… 🙂 Anyway, in this post, I’ll describe a couple of solutions to an error:“Sorry, your files couldn’t be uploaded. The upload might be too large or the server might be experiencing high network traffic”You might encounter this issue, when uploading pretty much any files in any SharePoint document library. Typically, I run into ...
    Read more!

  • SharePoint Localization – a (somewhat) comprehensive how-to! July 18, 2018 Localization – or showing users with different language preferences content in their preferred language – is not SharePoint’s strongest suite. It never was, and probably will never be, unless Microsoft perfects Machine Translation at some point. And even then it would probably require extra subscription, as Cognitive Services APIs are not available (above the peasant-tier) for free now either. In this article I’ll go through a few survival strategies for multilingual organizations – and I’ll try to expand the content as more options pop up!Please note, that this article revolves mostly around Classic SharePoint. Microsoft’s current implementation of Modern SharePoint ...
    Read more!

  • How to enable custom scripts for a SharePoint site collection? July 16, 2018 This article explains how to enable custom scripts for any SharePoint site. Different instructions apply to SharePoint Online, and on-premises scenarios (SharePoint 2013, 2016 and probably 2019).Different solutions resolve the issue for different target sites:Modern SharePoint Team Sites (attached to Office Groups)SharePoint MySitesPersonal OneDrive sitesAny SharePoint site collection created based on self-service site creationSharePoint Online tenant root site collectionAny Classic SharePoint site collectionErrors and causesMost typically I run into this when trying to insert a script web part with custom JavaScript into a site, that has NoScript enabled. That’s annoying – since script webparts are incredibly useful!However, that is the ...
    Read more!

  • Fixing issue “AADSTS70005” by enabling the implicit authentication flow for your Azure AD app July 11, 2018 While either developing or just trying to use an application that authenticates against Azure AD, you might get an error message that contains error code “AADSTS70005“. This means that you’re trying to use implicit authentication flow, but it isn’t allowed for your app. If you have access to the Azure AD you’re authentication against, it’s easy to fix! See more below…ReasonYou might get an error, somewhat like this:AADSTS70005: response_type 'token' is not supported for the application Trace ID: <Guid_1> Correlation ID: <Guid_2> Timestamp...This is returned by your Azure AD instance, as it doesn’t allow the use of implicit OAuth2 authentication flow ...
    Read more!

  • How to show more than 30 categories in SharePoint blog/news sites? July 9, 2018 Imagine this: you’re using a good old SharePoint blog site, and have a bunch of categories in use. That’s nice and easy – SharePoint offers the categorization functionality natively, and it works decently. Problems arise when you have a lot of categories, though – not all of them will be shown. Even if you tweak the web part to show more items on a page, this isn’t reflected on the whole blog site!This post article explains how to fix this.ProblemFor background info – the category listing is actually an XSLT list view web part. It’s not obvious just looking at ...
    Read more!

  • Fixing the error “Web Deploy cannot modify the file on the Destination because it is locked by an external process.” July 6, 2018 This post describes how to fix the error, where when publishing Azure Functions or Azure App Services you get an error like this: “Web Deploy cannot modify the file on the Destination because it is locked by an external process.”This is luckily another straightforward fix! ProblemAzure Function Publish fails with a message:“Web Deploy cannot modify the file on the Destination because it is locked by an external process.”It is, indeed, caused by some of your files at the target of your publishing being in use, so they cannot be overwritten. Great – an actually accurate error message! Much appreciated.This seems to apply to ...
    Read more!

  • How to fix AADSTS50011: Reply address did not match because of case sensitivity. June 26, 2018 So, you got an error with a code AADSTS50011? It’s just Azure AD’s authentication acting up because of invalid reply address! here’s a bunch of different reasons that lead to this error. This post describes the variant where the URL’s case sensitivity differns from what’s configured. For me, the most typical scenario where I run into this error is accessing the app from SharePoint.ProblemSo, you’re getting an error somewhat like this:AADSTS50011: The reply address <...> does not match the reply addresses configured for the application: '<guid>'. More details: Reply address did not match because of case sensitivity.This is another variation ...
    Read more!

  • How to fix an Azure Function (v2) failing with error “The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.” June 19, 2018 This post describes one way to resolve a problem, where you receive an error like “The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.” when calling your Azure Functions.ProblemAnother day, another simple, yet kind of weird issue to solve! This time I was developing a simple Azure Function to access Microsoft Graph API. This particular issue was kind of bugging, since the error message actually had nothing to do with the actual issue and gave no pointers as to how to fix the issue!I was just developing a function, and suddenly it ...
    Read more!

  • How to fix AADSTS50011: The reply address does not match the reply addresses configured… error June 11, 2018 So, you got an error with a code AADSTS50011? That’s ok – it’s just Azure AD’s authentication acting up because of invalid reply URLs! Since there might be a couple of different reasons for this error, this post also describes a couple of different solutions, that might help you overcome the issues.ErrorSo, you’re getting an error somewhat like this:But why? Did you mess something up? Well, if you’re the person who configured the app you’re trying to use, you probably did! Although Microsoft might still be the one to blame for that.Reason for getting AADSTS50011This error can typically be caused by ...
    Read more!

  • How to log in to Microsoft’s websites (MSDN forums, Azure Portal, SharePoint Online) when you get a “Bad Request” error? May 24, 2018 Every now and then, something like half of Microsoft’s websites will suddenly stop working – this applies to Azure Portal, SharePoint Online sites, MSDN forums and probably a thousand of other sites. The error is most of the time something like this:Bad Request - Request Too LongHTTP Error 400. The size of the request headers is too long.Or like shown below:This effectively blocks you from accessing the site. Most typically, I’ve encountered this on MSDN forums or Azure Portal – I’ve just faced a very blunt, unfriendly and quite useless error message, like above. This applies even to Microsoft’s services, ...
    Read more!

  • A cautionary tale of relying on the automatic backups in SharePoint Online May 21, 2018 So Microsoft keeps 14-day rolling backups of your SharePoint Online sites. That’s awesome – no need to take backups anymore, right?Not so fast. It’s not always so easy, and by just relying on these backups, you risk losing your data. Forever, I might add.This cautionary tale is about SharePoint Online, but I’d say you’ll need to take caution anytime you’re dealing with Microsoft’s automatic backups. The story starts with the client doing something unwise – a prime example would be them removing the root web of their classic SharePoint Site Collection (don’t do that!). PrefaceA few days ago I got an ...
    Read more!

  • How to fix Twitter embed in SharePoint May 18, 2018 Twitter has always been good for developers, except for those who’d like to embed anything – hence making it possible to interact with their contents on other sites than Twitter. I guess it’s understandable, but they seem to hate anyone trying to embed feeds, searches or anything on their sites. And they express their hate by making the developers’ lives more difficult… This time by silently breaking the embed script in a way, that’s tricky to work around.The ProblemIn February 2018, Twitter announced that their widgets will start rendering fallback markup on IE9 and IE10 “in the near future”. Since ...
    Read more!

  • Fixing an unhandled exception about StructureMap configuration failing (messed up assembly bindings) May 17, 2018 So, you’re running a console program, but while you try running it, you get an error like this: “StructureMap.Exceptions.StructureMapConfigurationException”, with a message like this: “Unable to find the exported Type’s in assembly” (the typo done by Microsoft, not me). There’s a number of reasons for this error, but for a fair share of the time that’s just your assembly bindings being messed up. Luckily, that’s another easy fix! ProblemWhen running the executable (probably an .exe), or after scheduling a task, or possibly after running an Azure webjob, you discover an error like this from the log files, or get it in ...
    Read more!

  • How to fix AADSTS50059: No tenant-identifying information found in either the request or implied by any provided credentials. May 14, 2018 Have you run into the cryptical “AADSTS50059: No tenant-identifying information found in either the request or implied by any provided credentials.” error? I have. This post will tell you how to fix it.How to fix AADSTS50059?I encountered this error while trying to reload a page with some JavaScript that authenticates against Graph API. It completely blocks the functionality, as it redirects the user to login page. Luckily, at least in my case, this was easily fixed! Your error might look something like this:Request Id: <guid>Correlation Id: <guid>Timestamp: 2018-04-27T20:58:36ZMessage: AADSTS50059: No tenant-identifying information found in either the request or implied by ...
    Read more!

  • How to show any page in a pop-up in SharePoint May 9, 2018 This ages old trick deserves to be published – since it makes it easy to quickly show info from pretty much any another page on pretty much any classic SharePoint page (in a SharePoint-compatible pop-up). So, here goes:Using SharePoint’s JavaScript library to open an arbitrary pop-upYes – SharePoint contains all the functionality out-of-the-box, and you almost don’t have to do anything yourself! Let’s see how this works.Okay – long story short. On all Classic SharePoint pages, you can call this function: SP.UI.ModalDialog.ShowPopupDialog(). Like it says, it quite simply just opens a pop-up dialog, showing the page that it finds from the ...
    Read more!

  • Thanks for coming to my session in SPS Nashville! May 7, 2018 I was at Cloud Friday and SharePoint Saturday Nashville, and had my session on Saturday – that was a lot of fun! I had the chance to meet a lot of new (and some “old”) people, and I think the community liked my session about Citizen Development tools (for “actual developers”) quite well!Don’t want to crawl through the jabbering? Just the materials are here. Thanks for your interest!Nashville seems to have quite an active community!I was in Nashville for both Cloud Friday on, well, Friday, and SharePoint Saturday. Both events had a nice turnout, and I was super happy about my session, ...
    Read more!

  • Speaking at SPS Nashville! May 4, 2018 This Spring is crazy – so many cool announcements to make! I’ll be speaking at SharePoint Saturday Nashville on 5.5.2018. This one’s a completely new SPS event for me, and I’m honored my session was accepted on the developer track! Based on the feedback from earlier sessions, I’m really excited to speak to the community about the cool new toys Microsoft is giving us! 🙂Never been to Nashville – excited to see what the city is like!I’m enjoying this life of Valo and community events taking me places. Nashville sounds like an awesome city, and now I’ve got the opportunity to attend two events on ...
    Read more!

  • Thanks for coming to SPS Houston! Check out the slides and demos 🙂 May 3, 2018 I had awesome time at SharePoint Saturday Houston! I had a lot of fun meeting a lot of new people, and I think the community liked my session about Citizen Development tools quite well!Don’t want to crawl through the jabbering? Just the materials are here. Thanks for your interest!My first time in Houston… And hopefully not last!Everyone knows something about Houston. It’s in the news because of the weather and NASA – the former of which was actually extremely nice this time, and the latter of which I unfortunately missed. Next time, I need to reserve some time to actually go take ...
    Read more!

  • Speaking at SPS Houston! April 27, 2018 Another exciting announcement to make – I’ll be speaking at SharePoint Saturday Houston on 28.4.2018! It’s a completely new SPS event for me, and I’m honored my session was accepted on the developer track with some other really professional speakers. I’m really hyped to share more of the cool stuff I’ve been working on! Looking forward to seeing what Houston is like!Since I haven’t been in Houston before, let alone attended a SharePoint Saturday there, I’m really looking forward to seeing the city and meeting the people! If you’re interested in the event, be sure to register to SPS Houston here (it’s free!) and join me on 4/28 2018!Why developers should embrace the citizen developer movement?In ...
    Read more!

  • Materials for my SPS TC session: “Citizen Developer Tools are not just for Citizen Developers” now available! April 27, 2018 Whoops – this post comes quite late, as the session was a couple of weeks ago already.  I recently had a session at SharePoint Saturday Twin Cities (SPS TC for short) and thought I’d share my materials and document my experiences. Oh, and do the shout-outs, since I referenced some and tools by some extremely talented people!Don’t want to crawl through the jabbering? Just the materials are here. Thanks for your interest, and you’re welcome!What was SharePoint Saturday Twin Cities like this year?The community around Minneapolis & St. Paul is great. It’s constantly one of the bigger SPS events in North America, ...
    Read more!

  • Solving Azure Web Application’s first load perfomance issues April 22, 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 the what I already knew: initial load times were horrendous, ...
    Read more!

  • Speaking at SPS Twin Cities! April 9, 2018 Exciting announcement to make – I’ll be speaking at SharePoint Saturday Twin Cities (SPS TC for short) on 14.4.2018! It’s one of the biggest SPS events worldwide, and I’m honored my session was accepted on the developer track. I’m really hyped to share some of the cool stuff I’ve been working on! Looking forward to an awesome SPS TC again!I’ve attended SharePoint Saturday Twin Cities once before, in 2017, while living in Wisconsin. The event was so well-organized and warmhearted, that I really wanted to go again… Only this time, I ended up submitting a cool session I’ve been working on. There’s already over 500 people registered to the event ...
    Read more!

  • Opening a web part page in maintenance mode March 27, 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? 🙂 Instructions for Modern ModeModern SharePoint is a whole new user experience. It’s more than a fresh look, it’s designed from the ground up to work on mobile devices, and it addresses dozens of nagging ...
    Read more!

  • Troubleshooting: Anonymous access on a public SharePoint site collection failing March 22, 2018 Ah, everyone’s favorite, classic topic! Debugging SharePoint On-Premises configuration issues is the best thing since sliced bread, right? This post is about allowing/enabling Anonymous Access to a site collection – a simple configuration, that “simply works” like once every ten times you try it.SymptomsA lot of different ways to hit your head on this one. In any case, your on-premises SharePoint doesn’t allow anonymous access to a site where you are trying to allow it. Most typically, they’ll just encounter 401 error when accessing the site, or they might be missing some of the content or styles, resulting in partially ...
    Read more!

  • Hackathon win: Resolving Managed Metadata Madness March 20, 2018 I won a hackathon! They had fun topics, it was a cool challenge, a well organized event, and had cool prizes. Since this is the first hackathon I ever took part in, I thought I’d post something about my experience and the solution(s) I figured out.DescriptionFor a TLDR-version of just the winning solution, click here! I recently took part in a fun hackathon organized by DevPost for Microsoft. Earlier, I posted some info about my hackathon entry, How to Resolve Managed Metadata Madness in SharePoint? I had played around with Flows and Cognitive Services before, but this was the first time I merged ...
    Read more!

  • How to show a Classic SharePoint page in dialog mode (without SharePoint’s full-blown chrome) March 12, 2018 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! Yeah, weirdly enough at least once something’s easy with SharePoint. Just grab the address of whatever page you’re on, and append a url parameter “IsDlg=1” in the ...
    Read more!

  • How to get rid of Foxit Drive in Foxit Reader March 2, 2018 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 issueOkay, so Foxit Reader is pretty great, but they’ve got their difficulties, too. Being freeware, they kind of need to get revenue ...
    Read more!

  • Solving error “AADSTS90013: Invalid input received from the user” March 1, 2018 I stumbled upon a customer, that complained about some pages in their intranet throwing weird errors with authentication. Those pages seemed to have one thing in common – there was a Yammer embed (or a SharePoint script webpart with Yammer embed script in it, to be precise) there. The error code they got was “AADSTS90013: Invalid input received from the user”.Below, you can see an example of the error screen.Okay – this is going to be extremely specific, and probably won’t solve the issue for all of you out there! But this is what worked for this customer:Solution: Check Yammer ...
    Read more!

  • Don’t remove the root web of your classic SharePoint Site Collection! February 27, 2018 A quick heads-up – if you remove the root site (or RootWeb, like it’s called in the code) of your classic SharePoint Site Collection, that’s going to cause you some grey hairs. It might even, in some rare cases, be unrecoverable!Why? Whereas you can always restore a normal site from the site collection recycle bin, the root site you can’t. You actually can’t access the recycle bin after removing the root site, nor can you make magic happen with PowerShell commandlets anymore.The Recycle Bin would be located at a URL like this: https:///_layouts/15/AdminRecycleBin.aspx, but after the site is removed, it won’t ...
    Read more!

  • How to output console or PowerShell transcript to a file in Windows February 1, 2018 Every now and then, you run into a situation, where you’ll need to somehow output the console output 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.ProblemSomething breaks or the app crashes, and the error is logged to event log… But just the error, not the whole transcript. You’d like to get it all, to figure out what’s actually going ...
    Read more!

  • How to fix “- – the web site does not support SharePoint Online credentials. The response status code is ‘Unauthorized'” error January 18, 2018 While running some SharePoint Online -PowerShell commandlets, or connecting to a SharePoint Online site from your app, you get a following (or similar) error about your SharePoint Online credentials being unauthorized for something you should definitely be authorized to do:Cannot contact web site 'https://<tenant>-admin.sharepoint.com/' or the web site does not support SharePoint Online credentials. The response status code is 'Unauthorized'.And that’s not all – by digging into the full error message, you find the underlying internal error:MSDAVEXT_Error=917656; Access+denied.+Before+opening+files+in+this+location%2c+you+must+first+browse+to+the+web+site+and+select+the+option+to+login+automatically.What awakens my curiosity, is this line:Access denied. Before opening files in this location, you must first browse to the web site and ...
    Read more!

  • How to solve “Unified Groups aren’t supported.” -error January 16, 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?There’s a fair chance this is caused by missing licenses. Try to access the account’s Outlook by browsing to this address (Office Web Access): https://outlook.office.com/owa/If you ...
    Read more!

  • How to Resolve Managed Metadata Madness in SharePoint? January 12, 2018 Using Azure Functions and Cognitive Services Text API to enrich a Flow that fills Metadata for new items in a Modern SharePoint Team Site. That’s, in a nutshell, the solution I submitted to a recent online hackathon. Quite a mouthful, isn’t it? The whole solution (and a public vote, if you’re interested!) is available here: https://devpost.com/software/resolving-managed-metadata-madness-in-sharepoint – this blog post will describe the solution and the reasoning behind it.PrefaceSome time ago my manager asked me to take a few weeks off, since I had accrued quite a lot of overtime during the hectic months working for Valo. I got bored quite quickly, ...
    Read more!

  • Using “DetectedLanguage” to return only localized results from SharePoint Search index January 9, 2018 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, single-page applications, ...
    Read more!

  • How to form links to Planner tasks January 7, 2018 Office 365 Planner is a neat tool for task management. However, when you, for whatever use case, need to form urls that point you towards a single task (or a bucket, or a plan for that matter), you might run into trouble with how the url is formed. Custom domains actually make it a bit complicated, but luckily there’s a workaround!Description of the issueIf you have multiple domains in your Azure AD, your Planner might end up using your custom domain in its urls. However, if you need to develop some multi-tenant code, that works with any tenant and whatever ...
    Read more!

  • Call to sites Graph API requires “owner” permissions for site collection regardless of app permissions December 19, 2017 Okay – yet another weird issue, and a hacky workaround. I was developing an app that was calling a SharePoint site through Graph API, using jQuery $.ajax call (developed in TypeScript), and ran into surprising 401 errors. I did find a workaround, but am also working on an actual fix.DescriptionTo get SharePoint site ID, which is needed when accessing SharePoint lists, the calls seemed to fail for my test accounts. Everything was working fine for my developer account, which was a global admin, so the first thing I was suspecting was of course permissions…The first offending test account was a ...
    Read more!

  • The Shortest Debugging Article For SharePoint’s Taxonomy Fields Ever December 12, 2017 Are you getting an error like “The SPListItem being updated was not retrieved with all taxonomy fields” when you try adding or modifying values in a TaxonomyField of a list item in SharePoint? Then read ahead, I’ve got a quick and dirty solution!ReasonAfter quick googling and some frustration, I figured the probable reason for the issue. SharePoint went and broke the link between the internal Note-field and the actual TaxonomyField you’re supposed to be using. And this causes SharePoint to return slightly confusing errors.In my case, my app actually just got a simple JSON response {“The SPListItem being updated was not ...
    Read more!

  • Alternative Languages in SharePoint forcing the (cumbersome) use of localized Managed Properties December 7, 2017 Localization and multilingual environments in SharePoint are an endless source of interesting issues and blog post topics. In one case, we had a tenant created originally in English, and a site collection created in Finnish. In this particular case, SharePoint somehow messed up the language settings, and ended up requiring the use of localized managed properties on the search center of that site collection. That ended up being unexpected, unituitive and unusable for the end-users.Description of the issueTypically, when you use SharePoint Search, you can use managed properties to search for values in certain fields or columns of any items ...
    Read more!

  • Web part title changes not reflected to some users in multilingual SharePoint environment December 5, 2017 I encountered another, interesting issue – this time in a SharePoint environment, where multiple display languages were in use. When changing the web part title on a web part on a classic SharePoint page, it seems like SharePoint saves the changes for you. In reality, only some users see the changes.So, in short: Some other users, on some devices, see the old title, whereas some see the new one. It’s a confusing situation and difficult to debug.Why do web part titles get changed seemingly randomly?Imagine this: You have a SharePoint environment, where you have multiple different languages set up. You also ...
    Read more!

  • 4 ways to fix error AADSTS65001 (The user or administrator has not consented to use the application) November 20, 2017 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! 🙂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 administrator can grant. Typically to add this kind of an app, you’ll have to be ...
    Read more!

  • How to use the Azure AD associated with your SharePoint Online November 3, 2017 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 OnlineIt’s simple, luckily! This guide will show you how to select the right AAD ...
    Read more!

  • New version of Microsoft.IdentityModel.Clients.ActiveDirectory (ADAL.NET) is out – good time to update! October 27, 2017 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 -developer’s standing point, the team has assimilated the Microsoft.IdentityModel.Clients.ActiveDirectory.Platform assembly, among other platform ...
    Read more!

  • A quick (and handy!) hack to force referenced assembly to getting copied to a project October 23, 2017 Visual Studio failing to copy a referenced assembly to a project in build might lead to surprising runtime errors. This post will explain one method of fixing these issues, using Microsoft.IdentityModel.Clients.ActiveDirectory as the example – as earlier versions of that assembly had this issue!ProblemAfter build, you might get this kind of error:Could not load file or assembly 'Microsoft.IdentityModel.Clients.ActiveDirectory.Platform, Version=3.13.1.846, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. System.IO.FileNotFoundException at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly ...
    Read more!

  • The effect of using Managed Navigation instead of Structural on SharePoint Online September 22, 2017 Have you ever noticed that your SharePoint site just gets slower and slower? That’s probably because the performance of Structural Navigation is absolutely horrible, especially vs. Managed Navigation. This blog post includes our findings about the issue, and I also include some explanation of the reasons behind the difference and a simple comparison to Search-based navigation.Structural NavigationThe first option would be structural navigation, which is more or less the traditional, easy solution. Without anything else done, this is enabled as the default option on classic SharePoint sites.By far the most customizable and tweakable optionEasy to edit for editors/adminsSecurity trimming is ...
    Read more!

  • Solving Microsoft Teams Licensing Error “errorCodeTeamsDisabledForTenantForbidden” September 13, 2017 This post explains how to fix the “errorCodeTeamsDisabledForTenantForbidden” error when trying to add guest users to Microsoft Teams channel. This issue might arise when a user is invited to a channel in your organization’s Microsoft Teams for the first time. Fixing it usually just requires a flip of a switch, but might also include some waiting.SymptomsYou get an error screen like this, when trying to join a Teams channel as a guest user.No fear, though – likely an easy fix!ReasonThis is pretty simple: Teams usage is not enabled for guest users. The usage of certain services can be enabled for ...
    Read more!

  • SharePoint-Teams -integration using a tab September 11, 2017 This post describes one possible scenario for SharePoint-Teams -integration, how to achieve that, and what kind of issues there might be.Teams? What’s that?At Blue Meteorite, we at the Valo team have been leveraging Teams since early 2017 as our main communications channel. For us, it complements Yammer, email and Skype for Business quite nicely, although to be fair, it’s not always 100% clear which channel would be optimal for a certain piece of communication… 🙂The Redmond Magazine calls Teams Microsoft’s response to Slack, and for someone who has used both, the source of inspiration is rather obvious. Built for “high-velocity ...
    Read more!

  • How to solve errors about missing PnP Cmdlets on PowerShell September 10, 2017 This blog posts briefly describes how to solve some of the most typical errors about missing PnP Cmdlets when using Windows Powershell (or SharePoint Online Management Shell).SymptomsWhen trying to run some PnP-related cmdlet, you get an error similar to ones below:Connect-PnPOnline : The term 'Connect-PnPOnline' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.At C:\Users\koskela\Downloads\Import-Valo-With-Content\Import\New-Valo.ps1:46 char:5+ Connect-PnPOnline -Url $AdminUrl+ ~~~~~~~~~~~~~~~~~ + CategoryInfo ...
    Read more!

  • Fixing the “For security reasons DTD is prohibited in this XML document.” issue July 14, 2017 This post describes a couple of ways to fix the issue “For security reasons DTD is prohibited in this XML document”. At least for me, it appeared when trying to access SharePoint Online using Powershell or a console program using OfficeDev.PnP (which in turn uses CSOM).ErrorWhen running any piece of code, whether in PowerShell, .exe console or anything else than in the code behind relies on .NET Framework, you get an error like this:For security reasons DTD is prohibited in this XML document. To enable DTD processing set the ProhibitDtd property on XmlReaderSettings to false and pass the settings into XmlReader.Create ...
    Read more!

  • Unorthodox configuration: How to use VLK and Click-to-run Office Apps side-by-side (Visio and Office 2016 as an example) July 4, 2017 Ever had issues with different versions of Office programs not living in harmony together? Me too! This post describes how I was able to fix the issue and get Visio and Office 2016 of different installation types to play well together.PrefaceThis blog post was inspired by my need to have Office 365 ProPlus (2016 versions) and Visio running side-by-side on my laptop. That turned out to be a lot more complicated than it arguably should be, so I documented the steps for further use. These instructions are written for that particular scenario (installing MS Visio on a machine with pre-existing ...
    Read more!

  • Preventing Outlook (and other programs) from stealing focus April 24, 2017 This post describes how to stop Windows applications from stealing focus from each other. In a practical sense, no piece of software should be able to “jump” to the top and activate your cursor in it, after the steps in this blog post have been applied.DescriptionAfter some recent batch of Windows updates my Outlook desktop client started stealing focus whenever there was a new email coming in. Like most people, I get a lot of email, and after a while my humor completely ran out with Outlook jumping in, stealing my keystrokes and doing whatever those keystrokes were bound to ...
    Read more!

  • USA 5: Working for Valo Intranet – and what’ve I been up to last few months April 12, 2017 I haven’t actually written that much about my daily work on this blog. I’m currently mostly involved with the Blue Meteorite’s North America team, and specialized in partner acquisition and support. Most of my time is spent either onboarding new partners, or supporting the old ones in their Valo Intranet deployments. And boy, is that not a lot of fun to do! Never before have I been able to work with so many talented people from so many different organizations, and that’s been both challenging and rewarding.I actually wrote a few words about it on Valo Intranet’s wwebsite.. And thought ...
    Read more!

  • Using SharePoint Search Query Tool March 13, 2017 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/.ContentsLogging in tricksFetching all managed propertiesOther tips Logging in to strange or ...
    Read more!

  • One web developer’s story about the downfall of web hosting (EIG / Site5 review) – part 2 March 9, 2017 I was able to actually get most of the money EIG got from me back from them by opening a Visa claim. In this short post, I’ll try to explain how you can stop your money from being funneled to EIG’s greedy hands… Even if your hosting provider was taken over by them.What happened to Site5 (and others that were acquired/savaged by EIG)?I was a customer of Site5 pretty happily for a long time, until Endurance International Group (EIG) took them over, wrecked their infrastructure, likely moved all of the customer data outside EU (which is against our laws) and ...
    Read more!

  • Easiest way to debug Seed-method in EF Code-first migrations in Configuration.cs when running Update-Database March 7, 2017 This post describes the easiest way to debug the issues that may stop your Seed-method in Configuration.cs from going through. The solution here shows you, how you can get a little bit more information out of the process, without attaching the debugger (there’s another blog post for that!)DescriptionEntity Framework’s code-first migration’s are a beautiful and easy way of managing database schema changes and populating some preliminary data there. Personally I also sometimes use the method for adding some enrichment to data or or custom property values mapping that would otherwise require an additional/external console program.Problem: running the Seed-method is by ...
    Read more!

  • Using Google Analytics with SharePoint February 21, 2017 This post describes why it’s beneficial to use a user analytics tool in your intranet. I use Google Analytics as an example of such tool, and different deployment options for SharePoint intranets are covered briefly.Why would I use Google Analytics with my SharePoint intranet?In general, it’s absolutely necessary for you to know your users, if you want to deliver an enjoyable user experience. One key aspect of knowing them is knowing what they do, while they use your system or service. SharePoint being a web-based software, it’s quite logical to use one of the many user analytics suites available for ...
    Read more!

  • Fixing the “Could not load file or assembly … or one of its dependencies” error February 15, 2017 This post describes how to fix the “Could not load file or assembly ‘<assemblyname>’ or one of its dependencies. An attempt was made to load a program with an incorrect format.” error. ProblemEspecially while installing a new dev machine, and building your project for the first time, you may end up getting the following exception:Could not load file or assembly '<assemblyname>' or one of its dependencies. An attempt was made to load a program with an incorrect format.No fear, though, as this is usually easily fixed. In quite a few cases, it’s simply a mismatch between architectures and easily changed.ReasonThe latter ...
    Read more!

  • Site Mailboxes deprecated on SharePoint Online – use Office Groups instead February 6, 2017 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?I just noticed the following in our SharePoint Online tenant administration:We're removing Site Mailboxes in SharePoint OnlineMC92090Julkaistu : 31. tammikuuta 2017Vanhenee : 15. syyskuuta 2017Beginning March 2017, new SharePoint Online organizations will no longer have access to the Site Mailbox feature, existing ...
    Read more!

  • USA, 4: You really, REALLY need a car to get around. Hence, Cadillac! February 5, 2017 This is the fourth post depicting me and my wife’s excursion to the USA. We are in the country to study, travel, business and leisure. Short version of the post: we went and got a car, because we didn’t have any other options.So, what’s up?We’ve been in the country for a couple of weeks. If there’s one thing, that’s become painfully clear, it’s the fact that you really need a car to get anywhere in this country. The only stores in Whitewater are Walgreens and Walmart, the latter being the worst kind of supermarket, where everyone goes by car. Even ...
    Read more!

  • USA, 3: Epic and local IT industry excursions January 27, 2017 This post is about our first excursion with the international student group to see Epic System’s HQ. During the first days I also walked around the town a bit in search of wall plug adapters, and accidentally made contact with the local IT industry.Getting my weird EU tech working in the StatesI took some tech with me to States – namely a laptop, its dock and a couple of mobile phones. I didn’t want to purchase transformers and charger for all my devices, so I took a couple of converters with me from Finland, and thought I’d buy a few ...
    Read more!

  • Fixing Lenovo T460S Wifi connectivity issues (removing the evil versions of Intel Dual Bank Wireless-AC 8260 driver) January 24, 2017 I recently received a new work laptop – Lenovo T460S. A cute little thing with impressive performance and reasonably good battery life. However, what people frequently complaing about online in regards of this laptop, is its absolutely, horribly awful wifi. This, in turn, is probably caused by it’s bad wifi chip, Intel Dual Bank Wireless-AC 8260. And they’re right – it’s a load of crap.The laptop out-of-the-box, at least for me, requires a very strong wifi signal. You need to be close to the router and without any obstructions, or you’ll end up with a connection like mine – see ...
    Read more!

  • USA, 2: Traveling to Chicago O’Hare for Business and Leisure January 24, 2017 This is the second post about me and my wife’s excursion to USA and all the traveling we did. We’ll be spending 6 months in the country, to study, attend conferences, travel and compare the culture to Finland. Hopefully we’ll learn something about ourselves and the world along the way!Transatlantic flightThe trip from Kangasala to Whitewater was definitely not a fast one. Driving from Kangasala to Helsinki-Vantaa Airport in Finland took a few hours, we had to wait for the flight for a couple of hours, before a 4-hour flight to Keflavik (in Iceland). While waiting on Helsinki-Vantaa, we met a ...
    Read more!

  • Getting Connect-MsolService (and other Azure Active Directory PowerShell cmdlets) to work January 20, 2017 In this post, I’ll try to archive everything you need to download and install to get commandlets like Connect-MsolService working. I’ve had to do it a couple of times when changing laptops, so it’s good to document them somewhere! 🙂So, when would you need to follow this guide and install the modules described here? Mostly this comes to play, when you’re switching machines, try to run the SharePoint Online Management shell but it doesn’t even exist on the machine, or it does exist but you get random errors like this:The term 'Connect-MsolService' is not recognized as the name of a ...
    Read more!

  • USA, 1: Initial Thoughts January 20, 2017 I’m staying in the United States of America for the first 6 months of 2017 for both work and leisure. In case you’d need to contact me during that time, that’s doable by normal means (Twitter/email). Just the timeframe’s a tad different due to my location being 8 hours from Finland (-6 UTC time zone). This blog post kind of sets the initial mood and expectations for the trip.Excuse me – who’s doing what?So – we are going to United States. But why?Well, that’s a valid question. I mean, who in their right mind would want to stay in the ...
    Read more!

  • One web developer’s story about the downfall of web hosting (EIG/Site5 review) – part 1 December 30, 2016 Okay, so this is going to be a bloggish rant about EIG – Endurance International – a web “hosting” company that’s ruining the web for everyone. If you hate salty rants, browse something else, please!I’ve been an independent web developer since around 2004, and even though maintaining and hosting websites is currently more of a hobby than anything else, I still do have a few dozen customers with one or more websites or other systems hosted by me. For more than 10 years I’ve been hosting both my and my customers’ websites on a few different web hosting or cloud ...
    Read more!

  • Remove-SPODeletedSite – Actually removing a SharePoint Online Site Collection December 2, 2016 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).DescriptionSometimes you need to get rid of a site collection you’ve created in SharePoint Online. The most typical example perhap 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 maybe you’re a smart admin, and you go and remove it from ...
    Read more!

  • Launching a new debugger instance from code in Visual Studio November 16, 2016 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 in the code, here’s the solution.Solution: launcing the debugger programmaticallyOkay ...
    Read more!

  • Fixing error “No Entity Framework provider found for the ADO.NET provider with invariant name ‘System.Data.SqlClient'” November 12, 2016 This post describes the fix to error “No Entity Framework provider found for the ADO.NET provider with invariant name ‘System.Data.SqlClient'”, which Visual Studio throws at your face when you try to run an application on any Windows-based system (or which you’ve dug out of event logs). Also, you’re probably using Entity Framework in your project.ErrorWhen debugging/running your code you get an error like this:An exception of type 'System.InvalidOperationException' occurred in EntityFramework.dll but was not handled in user codeAdditional information: No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.SqlClient'. Make sure the provider is registered in the 'entityFramework' ...
    Read more!

  • Using Dispatcher to update values in GUI elements from a background thread October 13, 2016 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 unhandled exception of type 'System.InvalidOperationException' occurred in WindowsBase.dllAdditional information: The ...
    Read more!

  • Disabling Delve/MySite redirection from SharePoint Site Collections October 4, 2016 In this post I instruct a simple way to stop SharePoint (either on-premises installation or SharePoint Online) from redirecting to MySites or Delve. The normal behavior is, that this happens when users click any name of a user anywhere in SharePoint. This is often not desired, and sometimes just confusing or impractical.ProblemIf your customers are like mine, a lot of them hate Delve or MySite or both. Or maybe they just are’nt willing to yet adopt Delve. Or maybe they just want to simplify the team site experience for their users and get rid of extra redirects away from the ...
    Read more!

  • Applying Entity Framework’s Code-First Migrations against a Database in Azure by running Update-Database September 16, 2016 This post describes how to run Entity Framework’s code-first migrations against a database located in the Windows Azure. This is done by running Update-Database commandlet with suitable switches, see below.The problem and symptomsOkay, so you’re developing your MVC+EF cool web app with a database in Azure, and you’re using code-first migrations. Cool! What’s nice with code-first-migrations is the fact they are run automatically even in the cloud the next time your app is running (as long as you publish your app with that little box ticked – something like in the screen capture below). But wait – what if there ...
    Read more!

  • Updating files in an App Part (SharePoint Add-in) September 12, 2016 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 files in an app part are updated during the deployment and ...
    Read more!

  • Fixing “Connect-SPOService : Identity Client Runtime Library (IDCRL) could not look up the realm information for a federated sign-in.” -error September 2, 2016 This post describes my super-simple fix to a weird error about “Identity Client Runtime Library (IDCRL)” failing with federated sign-in, when running PowerShell scripts against SharePoint Online.SymptomsWhile running your PowerShell scripts using SharePoint Online Management Shell, you get an error. Your cmdlets fail at connecting to the SharePoint Online with the following (or similar) error message:Connect-SPOService : Identity Client Runtime Library (IDCRL) could not look up the realm information for a federated sign-in.SolutionDespite what the error message says, the error is probably not that much about federation, or any other fancy configuration issue. For me, at the very least, it ...
    Read more!

  • Exception of type ‘System.OutOfMemoryException’ was thrown. August 25, 2016 This post describes one of the more no-brainerish ways of fixing a ‘System.OutOfMemoryException’ exceptions being thrown in your MVC ASP.Net application using Entity Framework.ProblemWhile developing a web project, for example ASP.NET MVC with EF, sometimes when handling a lot of data or complex entities on your dev machine, you encounter this error:OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.] System.Text.StringBuilder.ToString() +35 System.IO.StreamReader.ReadToEnd() +123 System.Web.Optimization.BundleFile.ApplyTransforms() +74 System.Web.Optimization.DefaultBundleBuilder.BuildBundleContent(Bundle bundle, BundleContext context, IEnumerable`1 files) +472 System.Web.Optimization.Bundle.GenerateBundleResponse(BundleContext context) +127 System.Web.Optimization.Bundle.GetBundleResponse(BundleContext context) +45 System.Web.Optimization.BundleResolver.GetBundleContents(String virtualPath) +166 System.Web.Optimization.AssetManager.DeterminePathsToRender(IEnumerable`1 assets) +205 ...
    Read more!

  • Fixed: Cannot use JSX unless the ‘–jsx’ flag is provided August 2, 2016 This blog post is about fixing issues related to building a project with TypeScript files. Basically, if your jsx or tsx -files are not getting built to js-files (which is what the browser understands) in Visual Studio’s build, this post might solve the issue for you.DescriptionWhile converting a project using React.js to TypeScript (and, hence, to use .ts and .tsx files instead of .js and .jsx) I stumbled upon this error:Cannot use JSX unless the '--jsx' flag is providedThe project would not build a .tsx-file with ReactDOM.render(…) in it. This is a huge issue, of course, as my JavaScript-files would ...
    Read more!

  • Tip: Scroll Solution Explorer to current file in Visual Studio 2012, 2013, 2015 and 2017 July 25, 2016 This quick post describes how to get the Solution Explorer to actually track your currently open file. For some reason, this extremely useful feature is disabled by default in Visual Studio. Enabling it helps you to better conserve your context, and see which part of your solution you’re in, while you’re developing a complex piece of software.Give it a try, in case you haven’t already! It’s great and extremely useful! 🙂How to enable the Solution Explorer to track your currently active itemI always want the Visual Studio Solution Explorer to show me the context where I work at. I want ...
    Read more!

  • Solving the “Spatial types and functions are not available …” -problem June 7, 2016 This page describes mutiple ways on how to fix the exception ‘Spatial types and functions are not available for this provider because the assembly ‘Microsoft.SqlServer.Types’ version 10 or higher could not be found.‘ which comes up during debugging or publishing your program, app or service using DbGeography.SymptomsWhile running a console program or perhaps installing an ASP.NET MVC website on a machine, where SQL Server (apart from the one that comes with the Visual Studio) has not been installed, you may encounter the following error:Spatial types and functions are not available for this provider because the assembly ‘Microsoft.SqlServer.Types’ version 10 or higher ...
    Read more!

  • Fixing the error: “Column XX in table dbo.YY is of a type that is invalid for use as a key column in an index.” May 29, 2016 While using Entity Framework and code-first migrations, Entity Framework (EF) creates the indexes for you – but what if you need to create a custom one, explicitly based on certain field / column? Then you’ll have to tell EF which one to use as a key column. Usually, it’s easy – you just add the following annotation to the columns you’ll be using:public int AreaId { get; set; } public string EstateId { get; set; }(example stripped of extra code and other columns for clarity)And after adding the migration (Add-Migration… commandlet) you get something like this:CreateIndex("dbo.Areas", new { "AreaId", "EstateId" }, name: "OfficialIds");Okay, nice. Don’t have to create the indexes myself either, so that’s neat with EF.But what if, when ...
    Read more!

  • RefinableString -managed property in SharePoint Online not populating for all items April 5, 2016 This post describes a peculiar problem one customer had. In their intranet, all of their employees had a managed metadata -typed managed property in SharePoint User Profile Service and a mapping from that property to RefinableString31. RefinableString31, in turn, was used on Search DisplayTemplates to show the textual value of the managed metadata field.SymptomsThe mapping and displaying the values worked beautifully – except for one user. Her people search results profile wouldn’t show her office address no matter how long the customer waited for the content to be reindexed, even though the data did exist in Active Directory.The DisplayTemplate was ...
    Read more!

  • Tweaking the SharePoint list view search box to filter on managed metadata fields March 17, 2016 This post contains minor but nifty tweak to search box in SharePoint list views. Applies to 2013, and Office 365 (for now). Pretty basic stuff, but had to figure this out for a customer so can just as well document it here 🙂Okay – so a customer needed to be able to filter view items in a SharePoint list by values in a keyword-field (managed metadata, with values added by editor users), and wanted to use the SharePoint’s searchbox. The problem was, out of the box this field does not search from “Enterprise Keywords”-field (or any similar field). This searchbox does, ...
    Read more!

  • Duplicate object values in ASP.NET MVC Display Templates? Easy fix! February 14, 2016 Are you getting duplicate object values (or whatever those Objects output in .ToString())? Eh, so was I, after I edited the display template for String. Found a fix, though.DescriptionOkay – I just ran into one of my more stupid mistakes since.. Well, since forever.I had made some quick and simple edits in String.cshtml display template (among quite a few other edits before building again and seeing what happened), as I added support for Enum values there. After that I started getting duplicate values for String-typed properties. Apparently, mistakes were made.SolutionLuckily, this was easy to fix (but probably still worth documenting):I had ...
    Read more!

  • Fixing “An error occurred while updating the entries” while running code-first migrations in MVC 5 app February 7, 2016 This post describes an issue with EF’s code-first migrations, when mapping between DB’s DateTime and C#’s DateTime kind of fails, and results in Update-Database cmdlet failing. It’s more or less a prime example of a situation, where the error itself tells very little about the actual issue, and since debugging code-first migrations is kind of difficult (see the best tips for that here!), it’s cumbersome to investigate.Symptoms"An exception of type 'System.Data.Entity.Infrastructure.DbUpdateException' occurred in EntityFramework.dll but was not handled in user code." I’ve encountered this error in 2 different situations. Either while inserting new entries into the database (in which case you ...
    Read more!

  • Fixing error “Cannot open server – – requested by the login. Client with IP address – – is not allowed to access the server.” in Azure deployments from Visual Studio January 30, 2016 This post describes how to work your way around the exception ‘Cannot open server – requested by login…’ The issue is caused by Azure’s somewhat annoying firewall logic, and might stop you from accessing your databases from your development machine.SymptomsWhen trying to publish a web project to Azure from Visual Studio, you suddenly get the following (or similar) error message:“Cannot open server ‘xxx.xxx.xxx.xxx’ requested by the login. Client with IP address ‘xxx.xxx.xxx.xxx’ is not allowed to access the server. To enable access, use the SQL Azure Portal or run sp_set_firewall_rule on the master database to create a firewall rule for this ...
    Read more!

  • Using PowerShell to set ULS logging level to “extra verbose” to catch all the events in the logs January 21, 2016 This blog post describes how set the SharePoint’s ULS level to “Extra Verbose” (VerboseEx) using PowerShell. This is not possible using the browser UI, so some POSH magic is required! Luckily, it’s quite straightforward, but to avoid filling your hard drive(s) with huge log files, you should reset the level when you’re done debugging!Description of the solutionBy default, ULS logging is somewhat non-detailed. This means that a lot of data that could be used to debug issues is omitted. The UI cannot be used to set this level of logging to “Extra Verbose” – it is limited to verbose. In ...
    Read more!

  • Using PowerShell to modify anonymous access permissions on SharePoint On-Premises January 5, 2016 This post is about managing Anonymous Access on a SharePoint site (SPWeb) using PowerShell commandlets. It’s often a lot more feasible and even easier than using the browser interface! In some cases, it’s borderline impossible to avoid it anyway – since accessing the GUI switch might not be possible.DescriptionAssume you have a site collection that’s you have published to the whole world. You’ll have anonymous access enabled at both web application and site collection -levels, and configured permissions at the root web -level. Now, let’s assume you want to disable anonymous access on a certain site deeper in the site ...
    Read more!

  • Powershell Error: Cannot uninstall the LanguagePack 0 because it is not deployed. November 17, 2015 Have you ever run into this, very non-descriptive and weird SharePoint error message “Cannot uninstall the LanguagePack 0 because it is not deployed”? You could encounter it while running some PowerShell scripts – most typically, when trying to update a wsp solution.I have, and luckily often easily solved!SymptomsAssume you’re trying to install, update or uninstall a SharePoint solution (.wsp package) using PowerShell-commands Install-SPSolution, Update-SPSolution or Uninstall-SPSolution (respectively). Operation fails with the following (or similar) error:Error: Cannot uninstall the LanguagePack 0 because it is not deployedI have actually seen this also in the form of “Cannot uninstall Language Pack 0 because it ...
    Read more!

  • “Server Error in ‘/’ Application” or “Parser Error” – it’s actually a malformed web.config killing your ASP.NET-application or SharePoint October 20, 2015 This post describes how to resolve a kind of cryptic and oddly misdescriptive error message about Parser Error on your ASP.NET application or (an On-Premises) SharePoint site. I ran into this after deploying wsp-packages to a SharePoint farm, but you can apparently get this on ASP.NET MVC sites, too.The error doesn’t actually tell you what’s wrong, so figuring it out took a while. Hopefully it’ll help you, though!Symptoms: Parser Error from a random-looking locationOnce you navigate to your web- or SharePoint site, you only get an error like this:Server Error in ‘/’ Application.Parser ErrorDescription: An error occurred during the parsing of a ...
    Read more!

  • Visual Studio 2010 fails to show the design view of an aspx-page October 1, 2015 This post is about solving the issue with Visual Studio 2010 failing to show the design view of an .aspx-page. Luckily, it’s an easy and pretty classical fix.SymptomsWhile trying to view or edit an aspx-page in design mode in Visual Studio 2010, the window is just plain empty and there’s little you can do about it – selecting view markup or hitting F7 may not do anything and restarting the Visual Studio doesn’t help.SolutionThe Design view requires connection to the SharePoint site where you’ll be deploying the solution (or rather, any site). Set the Site URL property in the project ...
    Read more!

  • Quickest way to download all the wsp-packages in a SharePoint farm September 21, 2015 Sometimes – pretty often in the good old on-premises world, actually – you’ll need to have a copy of all the packages that are deployed to a certain farm.So – how to download all of the deployed farm solutions (essentially, cabinet files renamed to .wsp) from a farm? Luckily, it’s quite easy!SolutionTo download all deployed farm solutions (wsp-packages) from a SharePoint farm is pretty simple using PowerShell. No need to download individual packages through cumbersome interfaces! You don’t even have to open the Central Administration! 🙂 The following script, when run in PowerShell, will download all of the deployed farm solutions ...
    Read more!

  • The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. September 3, 2015 This post describes a few different ways of fixing the error “The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.” one can get when trying to package/publish a SharePoint solution, web site or Azure Webjob.UPDATE 11.4.2016: I actually got this nasty exception on another occasion (Azure webjob publish), so I updated the text accordingly.SymptomsVisual Studio throws the following error when packaging a SharePoint solution to a .wsp file, OR when deploying or publishing your web project (for example Azure Webjob).The ...
    Read more!

  • How to log in to SharePoint as a different user? August 7, 2015 SharePoint 2013 and 2016 don’t have that old and familiar “sign in as a different user” -option in the site menu, and for the time being, nor does SharePoint Online. However, sometimes it’s very useful functionality to have, so it’s a bit weird Microsoft chose to get rid of the option. This post outlines a method that I’ve found to work quite well for making SharePoint ask for credentials, so that you can use another account to then log in!Solution for logging in as a different userThere’s a URL you can use to automatically log the current user out, and ...
    Read more!

  • Identifying IE11 compatibility mode in SharePoint July 22, 2015 In this post, I describe how you can figure out if IE11 has jumped in the compatibility mode. This is quite important because in compatibility mode IE does its best to screw up your CSS.Compatibility view now and beforeMicrosoft has been pretty keen on introducing new ways to handle browser compatibility and make IE behave in even stranger ways that it usually does by switching it to compatibility mode. There are a few reasons this could happen. In SharePoint’s case, perhaps the most usual one is that IE identifies the SharePoint site to be located in intranet zone… Or it’s actually ...
    Read more!

  • Simplest way to create a thread on SharePoint July 2, 2015 This post describes the (probably) easiest and most straightforward way of creating a new Thread in your SharePoint (or any other .NET) server-side / desktop code.Solution: how to create a new ThreadLet’s face it – one should not create new Threads lightly when developing SharePoint solutions, but sometimes it’s difficult to avoid. Or sometimes it’s just the simplest way to get around weird framework limitations. This one time we were developing a pretty simple functionality, where we needed to create a few fields on a certain title when user activated a feature. However, because of the complexity of the environment, we ...
    Read more!

  • How to properly use SPWeb.AllowUnsafeUpdates? June 27, 2015 At times you may need to allow unsafe updates to SPWeb objects to get your code to run. This, in SharePoint C# code-behind is done by setting SPWeb.AllowUnsafeUpdates to true. However, as this is an exception to security settings, and should generally not be done, it’s a good practice to limit the change to as small a scope as possible – even though the setting is only persisted for the duration of the request (unless the SPWeb object was gotten from SPSite.GetWeb() or SPSite.Webs).What to do?I’ve found the easiest way to temporarily allow unsafe updates in a safe way but ...
    Read more!

  • “File not found”-error when trying to activate custom feature on SharePoint June 20, 2015 This post is about fixing on of the most non-spesific errors you can get when activating features on SharePoint “File not found”.Problem“File not found” is one of the more annoying errors one can stumble upon when trying to activate a feature.There are quite a few reasons that can cause this error, but after the obvious ones (some files failing to be included in the package, botched wsp deployment, errorenous urls in event receiver) one thing to check might be the alternate access mappings. Solution to the “File not found” exceptionIn our case, we had an event receiver with a code similar ...
    Read more!

  • Attaching the Visual Studio debugger to the right IIS worker process June 13, 2015 Every now and then comes the time when you’d actually need to debug something, and then you’ll likely be using your Visual Studio to attach the debugger to one or more processes.Using CKSDev to attach to all IIS worker processes (w3wp.exe), or if you don’t use CKSDev, just pressing ctrl+p and selecting the processes from the list, is often a good enough solution. However, sometimes that makes your dev box sluggish, or maybe catches exceptions from code you’re not wishing to debug at the time, and it’d be handier to just attach to the one process you actually need. But ...
    Read more!

  • Programmatically creating readable internal names for new SharePoint fields June 5, 2015 This post is about a small programmatic workaround to creating new SPFields for SPLists in SharePoint with human-readable internal names. This is mainly a usability improvement for your editors (and doesn’t change your life that much), but at the very least they will probably appreciate it!In short, I’ll show you how to avoid SharePoint’s dirty encoding (like replacing a space with “_x0020_”). This appliesto when you’re using server-side code to generate fields.Problem: non-readable internal names for SharePoint list fieldsWhen you create a new field in SharePoint, SharePoint accepts the following syntax:string internalName = list.Fields.Add("Field name - in a readable way.", ...
    Read more!

  • Troubleshooting guide for Windows hosts -file May 31, 2015 This post describes how to fix possible issues with Windows hosts-file. I’ll first document how to find the damn file, and then go through a bunch of options on what to check and how to fix different possible issues.Opening the hosts -fileFirst of all, hosts file location is usually: C:\Windows\System32\drivers\etc\hosts (link may or may not work depending on your security settings and browser version, but you can always copy-paste it to your text editor’s “Open”-dialog… 🙂Editing the file requires elevated privileges for the text editor process, so you’ll need to run it as an administrator.TroubleshootingThis has mostly been copied from ...
    Read more!

  • SharePoint Windows Authentication fails on other addresses than localhost May 28, 2015 This post describes how to fix Windows Authentication on a SharePoint server failing on other addresses than localhost.SymptomsYou get the standard Windows/Basic Authentication prompt when accessing your SharePoint site, but the site won’t accept your credentials when your accessing the site using an address like http://website. However, using address like http://localhost works fine (but of course may cause other problems).You also get event log entries like this (most likely in System -category):The program w3wp.exe, with the assigned process ID, could not authenticate locally by using the target name HTTP/WEBSITENAME.Cause: IIS won’t accept Windows Authentication for a local host nameEven though you ...
    Read more!

The following two tabs change content below.

Antti K. Koskela

Solutions Architect / Escalations Engineer at Koskila / Norppandalotti Software / Valo Solutions
Antti Koskela is a proud digital native nomadic millenial full stack developer (is that enough funny buzzwords? That's definitely enough funny buzzwords!), who works as a Solutions Architect for Valo Intranet, the product that will make you fall in love with your intranet. Working with the global partner network, he's responsible for the success of Valo deployments happening all around the world. He's been a developer from 2004 (starting with PHP and Java), and he's been bending and twisting SharePoint into different shapes since MOSS. Nowadays he's not only working on SharePoint, but also on .NET projects, Azure, Office 365 and a lot of other stuff. This is his personal professional (e.g. professional, but definitely personal) blog.

Let me know your thoughts!