Azure Key Vault logo

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! And we’ll see how it works in just…Continue reading How to authenticate against Azure Key Vault both in Azure and local development environment?

Azure CosmosDb logo

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.Json to override the property names, if you want to – for example – map entities with PascalCase naming with…Continue reading System.Text.Json.JsonPropertyName not working for CosmosDb in .NET Core/5/6?

Some men want to watch the build fail

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! The article probably largely applies to any situation where you have a project referencing another project…Continue reading Errors loading an assembly that’s using Microsoft Graph API

EF Core equals bonk - a quality Entity Framework meme right there.

“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. No matter what my startup project was, – working directory, context, target folder, or other…Continue reading “dotnet ef script” or “Script-Migration” producing empty .sql files?

T-SQL, yes please!

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]). Entities may have been modified or deleted since entities were loaded. See http://go.microsoft.com/fwlink/?LinkId=472540…Continue reading How to form a parameterized SQL query to find duplicates in a table.

C# & .NET

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? Problem…Continue reading How to serialize to JSON in camelCase using .NET Core?

401 Unauthorized meme

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. As everything else in the system required authentication,…Continue reading How to secure your WebSocket connection using .NET Core?

WebSockets.

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. What gives? Problem…Continue reading HttpContext.WebSockets.IsWebSocketRequest always null in .NET Core?

WebSockets.

How to test a WebSocket connection directly in browser

This article documents a neat and simple way to establish and test a WebSocket connection, using just vanilla JavaScript and your favorite browser’s developer tools. Quick and easy – no external tools or libraries required! This is neat because you don’t want to have your information (credentials, hostnames, or even test data) leaking to outsiders hosting the tools – and using any external tools can be a bit of a drag anyway! In the sample found in a few paragraphs below, we’ll instantiate a WebSocket…Continue reading How to test a WebSocket connection directly in browser

Powershell is hell

Solving “Unable to find repository ‘https://www.powershellgallery.com/api/v2’.”

So, you’re running a PowerShell command that requires a connection to PowerShell gallery, but you run into an error message, somewhat like this: “Unable to find repository ‘https://www.powershellgallery.com/api/v2’. This can happen when you’re running something like Install-Module or Update-Module. This pretty much blocks you from doing anything that would require the use of new modules – so, quite a lot. Worth fixing, then. 😁 Problem The whole error message might be somewhat like this: What gives? Posts Related to “Solving “Unable to find repository ‘https://www.powershellgallery.com/api/v2’.””:How…Continue reading Solving “Unable to find repository ‘https://www.powershellgallery.com/api/v2’.”

Better blame TLS 1.0 for this one.

How to force an outdated .NET project to use TLS 1.2?

This article explains a kind of weird fix to a pretty annoying issue with a legacy service. And I’m not just calling it legacy because it’s WCF – I’m calling it legacy because it’s old. The particular piece of software was developed about 7 years ago (2014-ish)! It had worked for quite a while – but now it was down. I know, I know – 2014 is not THAT old. There’s surely COBOL that’s been running since the 70s, if not before. But in the…Continue reading How to force an outdated .NET project to use TLS 1.2?

While only a few countries use absurd date formats (such as the Month-first approach adopted by some former European colonies), there's no shortage of different date formats out there. Source: John Harding/Mona Chalabi

Experiment: DateTime formats

This article explains how to loop through all supported cultures on any given machine that’s able to run .NET. The code sample is in C# and outputs an HTML table you can copy – but obviously you can adapt it to your needs! This was something I needed to support some weird documentation task way back when – and it took me like a year to finish this blog post and push it out from the drafts… Background Okay. So I needed to figure out…Continue reading Experiment: DateTime formats

Visual Studio logo

How to fix a build configuration that’s not available as a build directive in Visual Studio?

This article describes how to fix and tweak your pre-build directives in Visual Studio – just in case they refuse to work properly. Because yeah, apparently that sometimes just randomly happens. But fear not – there’s a stupid and ugly, but definitely thoughtful workaround available! Also, sorry for the confusing title. I’m taking suggestions for a more descriptive one – but this one was kind of difficult to word clearly. Anyway – on to the topic of the day! Problem So you’re either trying to…Continue reading How to fix a build configuration that’s not available as a build directive in Visual Studio?

Entity Framework Core logo

How to fix “No database provider has been configured for this DbContext” in EF Core?

I’m using Entity Framework in most of the projects that I’m working on – and for the most part, it’s a pleasure to work with. But as always, there are plenty of chances to run into issues… So obviously, I stumbled into all of the rare stuff that IS broken! This one I hadn’t really seen before: “No database provider has been configured for this DbContext”. This time I encountered the issue while setting up a new project and getting started working on the model.…Continue reading How to fix “No database provider has been configured for this DbContext” in EF Core?

Azure Functions CLI - such a pretty logo for such an awesome functionality

“Missing value for AzureWebJobsStorage in local.settings.json” when debugging Azure Functions locally?

Another day, another issue with Azure Functions! For such a simple and powerful tool, it sure does produce a lot of topics for blog articles! 😁 So, in this article, I’m explaining a couple of possible reasons why you might get an error along the lines of “Missing value for AzureWebJobsStorage” when debugging Azure Functions locally. But before jumping into the solution(s), let’s take a closer look at the issue at hand, shall we? Problem When firing up your Azure Functions project locally, this error…Continue reading “Missing value for AzureWebJobsStorage in local.settings.json” when debugging Azure Functions locally?

An accurate depiction of a NuGet package factory

Azure DevOps Pipelines Caching

Azure DevOps pipelines have a pretty handy feature called Pipeline Caching. It’ll help you avoid annoyingly long NuGet package restores in your builds. And that makes sense – why would you restore packages again and again and again, if you’re not updating your dependencies meanwhile? And especially in the case of CI or CD pipeline, you’ll end up having a pipeline running constantly without packages actually getting bumped up – so your NuGet task is downloading the same packages over and over again. That’s where…Continue reading Azure DevOps Pipelines Caching

When my Azure Function doesn't build

How to fix “System.IO.FileSystem: Could not find a part of the path \AppData\Local\AzureFunctionsTools\Releases\3.17.0\workers. Value cannot be null. (Parameter ‘provider’)” when running Azure Functions locally?

Well, that title is a mouthful. But it’s the topic for today, so what can you do? That said, this article should be pretty topical, as the issue started popping up only a few days ago. Chances are it’ll be patched soon enough, but in the meantime, it’s always useful to document the fix! Problem When running or debugging Azure Functions locally, your runtime just blurts our this error and fails to compile your functions: [2021-01-11T10:28:11.495Z] A host error has occurred during startup operation ‘0d00defa-b8bd-4fb8-9794-b0e5950a4c38’.…Continue reading How to fix “System.IO.FileSystem: Could not find a part of the path \AppData\Local\AzureFunctionsTools\Releases\3.17.0\workers. Value cannot be null. (Parameter ‘provider’)” when running Azure Functions locally?

Have you tried turning it off and on again?

How to nuke the Identity Cache in Visual Studio?

This article explains one easy workaround to a lot of Visual Studio authentication issues. Personally, it’s helped me multiple times when Cloud Explorer has gotten into a weird authentication loop or Visual Studio stops seeing my MSDN subscription. And it also helps you clean up any old and unused credentials – such as the ones you only used once in 2018 to log into a customer’s Azure environment to debug an issue they had with their AppInsights extension on an app service (and that ended…Continue reading How to nuke the Identity Cache in Visual Studio?

What in tarnation (and tarnation accessories)

Fixing unexpected Microsoft.AspNetCore package errors after a dependency update

This was a fun one! Suddenly, while running or debugging my ASP.NET Core 3.1 application, I started getting errors about missing assemblies, along the lines of “FileNotFoundException: Could not load file or assembly Microsoft.AspNetCore.Components.Forms”. These DLL files were not required a minute earlier – nor did requiring them really make much sense in my mind – but there was a nonsensical, easy fix, so in the end, it was all good! But let’s go through this thing in order. What was the problem? Problem So,…Continue reading Fixing unexpected Microsoft.AspNetCore package errors after a dependency update

Microsoft Graph g-raph (giraffe) - the spirit animal of Microsoft Graph

Graph API throws “$count is not currently supported.” when you KNOW it’s supported?

Hey, another funny case. “Funny” as in “the error message is misleading and googling didn’t really help”, but also as in “a colleague knew the answer right off the bat because he already fixed it in another project”. This time the documentation was in fact there, it just wasn’t there to be found. Anyway – what have I broken this time? Problem When you’re calling Graph API with both $filter and $count, for example: Instead of the expected number of found items, you get results…Continue reading Graph API throws “$count is not currently supported.” when you KNOW it’s supported?