#SharePointProblems | Koskila.net

Solutions are worthless unless shared! Antti K. Koskela's Personal Professional Blog

Posts from 2021

Blog posts published in 2021

Posts from 2021 (60)

  • Cover image for 2021 - Year Review!
    NEW
    Published on
    Authors
    koskila

    2021 - Year Review!

    Well, it's been a year. It certainly does not feel like it has been a whole 12 months since I last wrote one of these, you know? I failed every single one of the goals I set for 2021, but I'm not going to lie, family takes (and deserves) so much time that it is no wonder that our hobbies suffer a bit. But still - writing these year reviews has become a tradition, so without further ado - let's get to it! 😁 Website stats
  • Cover image for How to fix "Microsoft.WindowsAzure.Storage: Server encountered an internal error. Please try again after some time." when using IoTHub trigger for Azure Functions?
    Published on
    Authors
    koskila

    How to fix "Microsoft.WindowsAzure.Storage: Server encountered an internal error. Please try again after some time." when using IoTHub trigger for Azure Functions?

    One more article before Christmas! 😁 This time, I'll be fixing a function that's triggering based on new messages received through my IoT Hub in my Azure Functions project. Technically speaking, this is super simple to implement - your function needs to define an IoTHubTrigger , with an Event Hub name and usually a Connection String (I don't know why I'm Sentence Casing that, too, but I'll stick to it!
  • Cover image for How to authenticate against npm registries in Azure DevOps?
    Published on
    Authors
    koskila

    How to authenticate against npm registries in Azure DevOps?

    Another one in the series of "this should've been easy, but alas, you're the edge case". "You" being "me", and the "edge case" being our internal npm feed (registry), for whatever reason. Ah, well - life would be extremely boring if everything always went according to documentation, right? So, instead of the built-in ways to access npm feeds, this solution includes some PowerShell. Ah - that's when you know it's going to be good, right?
  • Cover image for How to test SignalR-connection in the browser?
    Published on
    Authors
    koskila

    How to test SignalR-connection in the browser?

    So a while back I posted about testing your "vanilla" WebSockets connection directly in the browser - and while that's nice and easy, sometimes you need to class up a bit. In my case that meant upgrading to SignalR (for some corporate and enterprisey reasons as usual). It makes sense to leave behind the easy, simple, lightweight and somewhat transparent WebSockets to "upgrade" to the enterprise-ready (and arguably quite a lot less transparent) SignalR?
  • Cover image for How to access claims of a SignalR user in ASP.NET Core?
    Published on
    Authors
    koskila

    How to access claims of a SignalR user in ASP.NET Core?

    I tend to post a lot of articles about different gotchas and configuration tweaks, but this one goes back to the roots a bit - just me and a couple of other devs hacking some code together and being blocked by a bit of an obstacle, that's then fixed by - you guessed it - writing niftier code. Or actually, I suppose it was more about removing some and adding some of the right stuff... But isn't that what most programming is about? Anyway - let's take a look at configuring SignalR for an ASP.
  • Cover image for Azure Function build fails with "Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: Microsoft.AspNetCore.Mvc.Core"
    Published on
    Authors
    koskila

    Azure Function build fails with "Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: Microsoft.AspNetCore.Mvc.Core"

    Another fun one with Azure Functions! At least it's a simple one: this time, I ran into a weird issue while doing some code reusing - well, copy-pasting - between a couple of different projects. I was lovingly hand-crafting some Azure Functions, while suddenly the Azure Functions host would throw this in ugly red letters: Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'Microsoft.AspNetCore.Mvc.Core, Version=3.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' at Mono.
  • Cover image for How to update from deprecated Microsoft.Azure.Services.AppAuthentication to new and shiny Azure.Security.KeyVaults.Secrets?
    Published on
    Authors
    koskila

    How to update from deprecated Microsoft.Azure.Services.AppAuthentication to new and shiny Azure.Security.KeyVaults.Secrets?

    So, a while ago I posted about a fairly simple way to write your code for fetching secrets (and other confidential stuff) from Azure Key Vault in such a way, that it would work the same way both in Azure and on your local dev box. I find this pretty important, as it reduces the need for weird workarounds and fallbacks in your code, and at the same time enables you to harness the Azure Key Vault for that sweet spot of "good enough security without breaking your back or the bank".
  • Cover image for Fixing Blazor WebAssembly .NET 6 MSAL authorization bug
    Published on
    Authors
    koskila

    Fixing Blazor WebAssembly .NET 6 MSAL authorization bug

    Let's make this short and sweet. In this particular case, upgrading a Blazor WASM solution to .NET 6 broke the authentication when deployed to Azure. The same issue could probably happen to a fresh project, though. This is what you're running into: If you open your browser console, you'll see 2 interesting errors - first: dotnet.6.0.0.o2we6pverp.js:1 mono_wasm_runtime_ready login.microsoftonline.com/common/oauth2/v2.
  • Cover image for How to nuke your Git(Hub) commit history?
    Published on
    Authors
    koskila

    How to nuke your Git(Hub) commit history?

    Ah - this was a fun one. I needed to figure out how to purge, flush and clear your commit history on GitHub. Turns out it isn't as easy as clicking a button in the web user interface - the world is apparently not ready yet! 😁 Luckily, it wasn't that complicated either - and the steps should work for other flavors of git as well. Background Always remember to .gitignore your secrets, folks! And if you forget, pray you're not committing to a public repository!
  • Cover image for How to fix "Unable to cast object of type 'System.Net.Http.HttpRequestMessage' to type 'Microsoft.AspNetCore.Http.HttpRequest'."
    Published on
    Authors
    koskila

    How to fix "Unable to cast object of type 'System.Net.Http.HttpRequestMessage' to type 'Microsoft.AspNetCore.Http.HttpRequest'."

    This article explains how to fix an issue where your Azure Functions function (yes, that's a capital F and a lowercase f to denote the difference between the product and the piece of compute) fails to fire when a POST request comes in, even though it's configured to do so, and instead throws a somewhat confusing error message about HttpRequestMessage not being castable to HttpRequest - even though you KNOW HttpRequestMessage works just fine for receiving POST requests with payload!
  • Cover image for How to authenticate against Azure Key Vault both in Azure and local development environment?
    Published on
    Authors
    koskila

    How to authenticate against Azure Key Vault both in Azure and local development environment?

    Azure Key Vault is great. But when developing locally, it can be a bit of a pain. You can always circumvent it and create some classical solution, such as simply wrapping all of your key/secret assignments in if-else-clauses that will use local configuration if you're running locally and only call the Azure Key Vault if you're in the cloud... But that feels so incredibly early-2000-ish. Isn't there a better option available? I mean - obviously, there is!
  • Cover image for System.Text.Json.JsonPropertyName not working for CosmosDb in .NET Core/5/6?
    Published on
    Authors
    koskila

    System.Text.Json.JsonPropertyName not working for CosmosDb in .NET Core/5/6?

    This article explains how to fix an annoying issue with Microsoft's SDK for CosmosDb v3 - it comes with a Newtonsoft.Json dependency, that most of Microsoft's recent packages have let go of. With .NET Core 3.1 having shipped with System.Text.Json included, and (mostly) replacing Newtonsoft.Json, it's kind of the preferred option. However, CosmosDb v3 SDK doesn't support it and by default requires you to use Newtonsoft.
  • Cover image for Errors loading an assembly that's using Microsoft Graph API
    Published on
    Authors
    koskila

    Errors loading an assembly that's using Microsoft Graph API

    Man, do I run into all kinds of issues with the smallest Azure Functions that I develop. And it's mostly my fault. The silver lining is that you're here to read this article, so you probably ran into this same stuff. Well - you should be happy to hear that this article describes fixes to a couple of issues - let's see if they help you out as well!
  • Cover image for ILogger binding suddenly failing for Azure Functions - what to do?
    Published on
    Authors
    koskila

    ILogger binding suddenly failing for Azure Functions - what to do?

    This article explains another fun issue that you might run into when developing Azure Functions in your local environment. It was weird how unclear the few results were that I could find. And the issue is just... very hazy in general. But I was able to track the issue down, and thought I'd document the solution :) It's for myself, really, because I'm pretty sure I'll run into this one again. But if you find it useful, good for you! 😉 Problem So what is it that is failing?
  • Cover image for "dotnet ef script" or "Script-Migration" producing empty .sql files?
    Published on
    Authors
    koskila

    "dotnet ef script" or "Script-Migration" producing empty .sql files?

    Another day, another issue. This time, I was absent-mindedly following the guidance for a project on how to generate .sql files for .NET EF Core code-first migrations. Don't ask why that was required, but it was. My migration was simple. Adding an entity with just a few properties. And Entity Framework created my programmatic migration just fine. But when generating the SQL file, I got nothing but an empty file.
  • Cover image for How to fix a 403.18 in a virtual application?
    Published on
    Authors
    koskila

    How to fix a 403.18 in a virtual application?

    Another day, another issue - this time with an on-premises environment with a ridiculously complicated architecture and an absolute ton of pipelines. There are plenty of ways to fix this particular issue (because there are plenty of reasons), and after ferocious googling (and a very brief binging just to see if Microsoft had found something Google hadn't), the trail ran cold and I felt like nobody had run into the same issue before.
  • Cover image for GitHub Action fails with "The GITHUB_TOKEN environment variable was not set"
  • Cover image for How to download audio files from Vidyard
    Published on
    Authors
    koskila

    How to download audio files from Vidyard

    Today, I'm documenting a simple way to download audio files from Vidyard. This approach only works for files that aren't password-protected or behind authentication - I don't think you can use it easily for nefarious stuff, but just in case you're trying to commit some kind of IP theft (intellectual property), please don't. And definitely do not ask for instructions in the comments section :) Anyway - why did I take up this task? What did I want to achieve, in order to need... This?
  • Cover image for Visual Studio Code fails when running "git pull" for a new project
    Published on
    Authors
    koskila

    Visual Studio Code fails when running "git pull" for a new project

    This article describes a simple fix to an issue (well... One or many possible issues), where git fails to pull anything from remote, throwing instead an error somewhat like this: fatal: no such branch: 'master' Bah. This stops you from pulling any new changes from remote, and likewise, it will stop you from pushing your new stuff out there. Always something going wrong with git, right? But what is the reason this time exactly? Problem So there I was, just following a guide on docs.microsoft.com.
  • Cover image for How to form a parameterized SQL query to find duplicates in a table.
    Published on
    Authors
    koskila

    How to form a parameterized SQL query to find duplicates in a table.

    So one day, I needed to quickly check if an identity field in a view in a Microsoft SQL Server was actually unique or not. I was running into weird issues with Entity Framework throwing an error somewhat like this: Store update, insert, or delete statement affected an unexpected number of rows (2) Or somewhat like this: Type: DbUpdateConcurrencyExceptionStore update, insert, or delete statement affected an unexpected number of rows ([row count]).
  • Cover image for How to serialize to JSON in camelCase using .NET Core?
    Published on
    Authors
    koskila

    How to serialize to JSON in camelCase using .NET Core?

    This article describes how to configure your .NET Core application to serialize objects in camelCase instead of PascalCase. I guess this is another quick note - something that should be simple, but I couldn't remember how to do it from the top of my head, and the solution turned out to be a bit unintuitive. I guess that makes it worth documenting because I'll definitely run into this again. Anyway - let's take a closer look at the actual issue at hand, shall we?
  • Cover image for Home Assistant - Quick and dirty fixes
    Published on
    Authors
    koskila

    Home Assistant - Quick and dirty fixes

    This article documents the quick and dirty fixes and patches that I have found for Home Assistant. I'm trying to document all the things that are not complicated enough to warrant an actual blog post themselves somewhere, and this page is as good a place as any. Hopefully, these tips end up being helpful to someone else as well!
  • Cover image for How to secure your WebSocket connection using .NET Core?
    Published on
    Authors
    koskila

    How to secure your WebSocket connection using .NET Core?

    This article explains how to easily authenticate your WebSocket connections using .NET Core and vanilla JavaScript. The same concept probably applies to all sorts of front-end libraries, although some of them might offer some syntactic sugar on top of it. But it's simple, and keeping your implementation simple is generally speaking a good idea. So - this one came up when developing a simple API that'd expose a WebSocket endpoint for seamless notifications to the Web UI.
  • Cover image for No way to renew a ClimaCell API subscription - what to do?
    Published on
    Authors
    koskila

    No way to renew a ClimaCell API subscription - what to do?

    One day I suddenly realized that my Home Assistant's ClimaCell integration had stopped working. That was weird - it had been running just fine for a while. I had signed up for a ClimaCell developer account at developer.tomorrow.io (or whatever the address was before rebranding from ClimaCell to Tomorrow.io - but this is the portal that I used) on the 28th of July, perhaps in 2020, or perhaps 2019. And it had worked brilliantly so far, but suddenly and without warning, it just stopped working.
  • Cover image for HttpContext.WebSockets.IsWebSocketRequest always null in .NET Core?
    Published on
    Authors
    koskila

    HttpContext.WebSockets.IsWebSocketRequest always null in .NET Core?

    This article explains another simple fix to an annoying issue. I guess that's how I start most of my little tutorials, but hey, it's true! I suppose I just have a knack for running into issues that come with poorly documented fixes or workarounds that are obvious but only in hindsight... Right? Anyway, this time my WebSocket requests were not being handled as such by my ASP.NET Controllers. "IsWebSocketRequest" was suggested by IntelliSense, but it would always be null in the code.
Whitewater Magpie Ltd.
© 2026
Static Site Generation timestamp: 2026-02-03T09:01:56Z