Edi Wang

.NET and Azure Developer

Posts in 2020

Setup Cat Live Streaming on Microsoft Azure

Cats are very helpful for programming. But when we are not at home, how can we remotely watch the cat and let our friends watch it together? With Azure, this problem will be solved! Live broadcast equipment and software USB Camera In terms of hardware, we only need an ordinary USB camera. It is recommended to use a camera with auto focus and resolution above 1080p. The image sensor of the camera …
Azure Azure Media Service

How to Enable Application Request Routing on Azure App Service

We typically use Application Request Routing (ARR) module to host a reverse proxy on IIS. Azure App Service is also using IIS as it's gateway, which should work for reverse proxy, but it won't work by default. Let's see how can we enable ARR on Azure App Service. The Experiment I have https://dropdatabase.run/ domain, and I want to reverse proxy https://996.icu/ under https://dropdatabase.run/996. …
IIS Azure App Service

Load Balancing My Blog on Azure

In order to improve the page loading speed of my blog for US users, I deployed an App Service in West US region on Azure some time ago. Now I have 2 servers running my blog, East Asia and West US. In this post, I'm going to illustrate how to use Azure to load balancing these servers, so that users can get access to the closest server for their regions. Adding Identifier Tags Since the codes …
Azure App Service Front Door

How to Quickly Fix Dashboard After Moving Resources in Azure

Azure users often need to move resources to another resource group or subscription because they are not rich enough. After the move is completed, the corresponding Dashboard components will become invalid. Usually, we need to delete and rebuild these dashboard cards one by one. Is there a quick and accurate way to repair Dashboard in one step? Moving resources Take my blog as an example, I moved …
Azure

Securing My Blog with Azure Web Application Firewall (WAF)

Website developers and operation will inevitably encounter hackers. There are many fully automated hacking tools and scripts on the Internet that can scan your website for known security vulnerabilities and launch fully automated attacks in an attempt to seize control of the server. As a result, businesses often purchase web site application firewalls (WAFs) and deploy in front of the web server …
Azure WAF

Test Network Speed Between Azure VMs Using iPerf

When it comes to measuring network speed, you might think of testing the Internet connection speed with the famous speedtest. But in fact, just testing the Internet connection speed is not reliable. In some scenarios, the final Internet speed is also affected by the your infrastructure like the connection to your ISP's server. Therefore, it is very important to know where your network performance …
Azure Network

How to Restore Connection After Accidentally Disabled NIC on Azure VM

Normally, we uses cloud based VMs through SSH or RDP, so a network connection is necessary for connecting to the VM. But what if you accidentally disabled the NIC on your cloud VM? You may want to call Azure Support or find a previous snapshot for restoring VM. That's not necessary! Azure can help you restore your NIC by yourself in a few steps. Experiment I created a Windows Server 2019 VM on …
Azure VM

Configure URL Redirect on Azure Front Door

Azure Front Door is a global entry point service for websites. Including features like DDOS, WAF, website failover. I have introduced it in "A Brief Introduction for Azure Front Door". This article specifically introduces the usage of URL redirection in Azure Front Door. When to do URL redirection URL redirection is mainly used to redirect users to a new location of a resource. The most common …
Azure Front Door

Setup a Private NPM Server on Azure in 45 Seconds

Recently, my company needed to use a private NPM server. I did some research and finally chose verdaccio, an open source and free product. However, the environment setup is a huge trouble. Since it is Linux friendly, but my company only has Windows Server 2012 R2, I have to follow the incorrect official document and Googled a lot, finally it took me nearly 5 hours to install on the server. During …
Azure Docker NPM

Migrating an ASP.NET Core Web API Project to Azure Function

Some time ago, I successfully migrated an ASP.NET Core Web API project to the latest Azure Function V3, thereby taking advantage of the serverless features of the Azure platform to reduce operation and maintenance costs by 10 times. This article will introduce the key steps and practices in the migration process to help you migrate similar Web API projects. Project background This Web API …
.NET Web API Azure Azure Function

Solving Azure AD Sign In Failure with Azure Front Door

Today I am migrating my blog to use Azure Front Door which I have introduced in a previous blog post last year. Everything went well except for the blog admin sign in. I configured my blog to Azure AD as SSO. But after I put the blog behind Azure Front Door with my custom domain, OIDC Redirect URL just blow up. OIDC Redirection Failure When I tried to sign in, the redirection URL suddenly went to …
Azure Azure AD Front Door

Use Azure Function to Schedule Auto Start for VMs

VMs on the Microsoft Azure platform can be configured to automatically shut down by schedule. However, currently only VMs in the DevTest Lab service can be powered on automatically. Regular VMs have not been updated with the auto start capability. But still, we can take advantage of Azure Function V3 and PowerShell Core to start the VM by timed schedule. The Idea I have wrote a post 6 year ago …
Azure PowerShell VM Azure Function

Fix 'Cannot Delete Payment Method' for Expired Credit Card on Azure

Recently my credit card for Azure expired. I have to replace it with a new card. But when I added my new card and try to delete my old credit card, Azure pop up an error saying "Cannot delete payment method(s)" and indicates that the card is in use. I was trying to delete credit card from "Cost Management + Billing" - "Payment methods" screen. The reason why Azure won't let me delete my old …
Azure

Import Data to Azure Storage Table from SQL Server

Recently, there was a demand to switch data storage from SQL Server database to Azure Storage Table. However, neither SSMS nor Azure Portal provide a direct import function. You may now consider writing a tool to import data, but actually it isn't necessary. I still managed to do it within mouse clicks. But the first thing to warn everyone is that relational databases like SQL Server are not …
SQL Server Azure Storage

How to Use the Latest .NET Core Runtime on Azure App Service

Microsoft often releases updates to .NET Core, usually as security patches. This morning, the .NET Core 3.1.5 update was released. However, Azure App Service's own .NET Core runtime will not be updated immediately, and we would usually wait a few weeks before Microsoft rolls out the update to Azure. For applications with high security requirements, it is urgent to complete the update before …
.NET Azure App Service

My ASP.NET Core Route Debugger Middleware

Background In the ancient days of the .NET Framework, there was a RouteDebugger that outputs routing information for the current page in an MVC or web API app, or sees all the routing information registered in the app. The latest version of its NuGet package is 2.1.5, updated in 2016, from an article by Phil Haack 12 years ago https://haacked.com/archive/2008/03/13/url-routing-debugger.aspx …
.NET Middleware

Docker Support for My .NET Core Blog System on Azure

"Moonglade", the open-source blog system used by my blog (https://edi.wang), has been around for over a year. At least four community friends have used the system to deploy their own blogs on Azure and Alibaba Cloud. Unfortunately, the system has long lacked Docker support, which is the political correctness of today's world. Recently things have changed, and I successfully made my blog system run …
Azure Linux Docker

How to Check Resource Existence in Azure CLI

Azure CLI can help us automate the configuration and management tasks of Azure. Ideally, for repetitive tasks, using CLI scripts can help us save time. However, Azure CLI still has some features that are not convenient enough, such as checking the existence of resources. Current Situation For some resource types, such as Resource Group, Azure CLI provides exists directive that can return the …
Azure CLI

How to Check If .NET Core Program is Running under Remote Desktop

There are a few reasons that we need to know if our program is running under the Windows Remote Desktop (RDP) session. For example, if it is running under RDP, we may disable animation and other fancy graphics effects. But how can we detect if our program is currently under RDP? Let's see. Windows Forms If you are developing Windows Forms Apps using .NET Core 3.x, there's a built-in API that can …
.NET Windows Remote Desktop

Performance Optimization for My .NET Core Blog on Azure

I rewrote my blog system with .NET Core last year. After more than a year of optimization, the server response time is now 8ms comparing to 80ms when it first went live. This article shares what I have done to make my blog works really fast. In fact, before .NET Core, my old blog system was written by .NET Framework, built from ASP.NET Web Form 2.0 in 2008 all the way up to ASP.NET MVC5 in 2018. …
.NET Azure CDN