<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Edi Wang</title><description>Microsoft MVP for Azure</description><link>https://edi.wang/</link><pubDate>2026-04-23T16:22:54Z</pubDate><copyright>© 2009 - 2026 edi.wang</copyright><generator>Moonglade v15.13.3</generator><language>en-US</language><item><title>How to Stop Automatically Switching to New Outlook</title><link>https://edi.wang/post/2025/1/20/how-to-stop-automatically-switching-to-new-outlook</link><description>Microsoft introduced the new Outlook last year. Many users, including myself, are not fond of the new Outlook. In early 2025, I discovered that Microsoft plans to automatically install the new Outlook on new Windows 11 machines. Additionally, users will be forced to switch to the new Outlook after opening the classic Outlook app a few times. What’s even more frustrating is that even if you uninstall the new Outlook app, it will reappear after some time. In this blog post, I’ll share a method to disable this automatic upgrade behavior.</description><category>Server and Tools</category><guid isPermaLink="false">F7FC8757-CE8E-4BB3-8C8D-4F11848FC9B4</guid><pubDate>2025-01-20T02:10:14Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2025-01-20T02:10:14Z</updated></item><item><title>How to Prevent Untrusted Apps from Reading Your Browser Password on Windows</title><link>https://edi.wang/post/2024/5/13/how-to-prevent-untrusted-apps-from-reading-your-browser-password-on-windows</link><description>Although Microsoft Edge, Chrome, and Firefox store encrypted passwords in the user profile location, these can be easily decrypted by another program without requiring user authentication or approval. Consequently, an untrusted program, not flagged by Microsoft Defender or other security software, can easily access your passwords. Let's check out the simplest method to prevent this.</description><category>Server and Tools</category><guid isPermaLink="false">6E9C4F1B-1922-459B-BAC6-99424502CE59</guid><pubDate>2024-05-13T07:58:06Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2024-05-13T07:58:06Z</updated></item><item><title>How to Run Windows XP and Windows 2000 VM on Azure in 2024</title><link>https://edi.wang/post/2024/4/11/how-to-run-windows-xp-and-windows-2000-vm-on-azure-in-2024</link><description>Microsoft Azure does not officially provide Windows XP images for the creation of virtual machines. The earliest version of a client OS image available on Azure is Windows 7. Despite this, I have devised a method to operate legacy Windows operating systems, including Windows XP, on the current Azure compute platform. In this blog post, I will outline the steps involved in this process in detail.</description><category>Microsoft Azure</category><category>Server and Tools</category><guid isPermaLink="false">D885211D-E7D1-4DB2-B475-9DC55B73F134</guid><pubDate>2024-04-11T01:57:28Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2024-04-11T01:57:28Z</updated></item><item><title>PowerShell to Enable SQL Server Express Remote Access</title><link>https://edi.wang/post/2024/1/18/powershell-to-enable-sql-server-express-remote-access</link><description>SQL Server Express is a free edition of Microsoft's SQL Server, which is a relational database management system (RDBMS). However, remote access is not enabled by default on this SKU. To access a SQL Server Express instance from the network, we have to do a few steps. There's plenty of guide on the internet telling you how to enable remote access via GUI, but I would like to do it from PowerShell. …</description><category>Server and Tools</category><category>Data Platform</category><guid isPermaLink="false">94754AF1-8CF2-4600-A4D7-BAB8DC0DF76D</guid><pubDate>2024-01-18T05:52:41Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2024-01-18T05:52:41Z</updated></item><item><title>Deploy Public DNS Server on Microsoft Azure</title><link>https://edi.wang/post/2023/6/10/deploy-public-dns-server-on-microsoft-azure</link><description>Deploying a public DNS server on Microsoft Azure can be a crucial step for organizations and individuals that want to provide DNS resolution to the public. Deploying a public DNS server on Azure can provide benefits such as scalability, high availability, and global reach. In this blog post, we will discuss the steps involved in deploying a public DNS server on Microsoft Azure. …</description><category>Microsoft Azure</category><category>Server and Tools</category><guid isPermaLink="false">E77E2FB0-6B06-41C5-AF14-8987CEC7D1A7</guid><pubDate>2023-06-10T02:51:29Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2023-06-10T02:51:29Z</updated></item><item><title>Setup Hyper-V Server 2019 in My Home PC</title><link>https://edi.wang/post/2023/5/6/setup-hyperv-server-2019-in-my-home-pc</link><description>I recently bought a HP 800G2 PC for 200 RMB from my company. I decided to use it to host VMs for my tech experiments. Having VMs running in home LAN gives me advantages over remote connection to Azure datacenters, which I would typically use. I ended up installing Hyper-V Server 2019 on the machine and deployed an Ubuntu Server VM and a Windows 10 VM. In this post, I will share the process …</description><category>Server and Tools</category><guid isPermaLink="false">4263343C-F83D-451E-AD61-B44EC50E5A75</guid><pubDate>2023-05-06T02:15:52Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2023-05-06T02:15:52Z</updated></item><item><title>Testing Network Speed Between Azure China and Azure Global for B1s VM</title><link>https://edi.wang/post/2023/2/25/testing-network-speed-between-azure-china-and-azure-global-for-b1s-vm</link><description>Some businesses choose to deploy their systems across both Azure China and Azure Global. For these systems to function effectively, it is crucial that their communication over the internet performs well. To assess the current state of the network between Azure China and Azure Global, I conducted a series of tests and would like to share the results.</description><category>Microsoft Azure</category><category>Server and Tools</category><guid isPermaLink="false">0B86B703-C259-4B9D-B745-B0B4969B12CD</guid><pubDate>2023-02-25T10:15:21Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2023-02-25T10:15:21Z</updated></item><item><title>How to Print Borderless Photos on Cannon MG2580s</title><link>https://edi.wang/post/2021/10/7/how-to-print-borderless-photos-on-cannon-mg2580s</link><description>I have a Cannon MG2580s printer, it can print 4x6 inch (10x15cm) A6 size photos, but with ugly white borders even the printing software is set to borderless. This is because this model of printer does not support borderless printing on hardware level, it's not a software or settings issue.  I've come up with a workaround that can produce borderless photo printing. …</description><category>Server and Tools</category><guid isPermaLink="false">AB9266F8-D881-42C9-B2F3-1611CA65E027</guid><pubDate>2021-10-07T02:59:58Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2021-10-07T02:59:58Z</updated></item><item><title>ASP.NET Core 5.0 Throughput Test in Kestrel, IIS, Nginx and Caddy</title><link>https://edi.wang/post/2021/2/3/aspnet-core-50-throughput-test-in-kestrel-iis-nginx-and-caddy</link><description>Starting from version 2.2, ASP.NET Core allow you to use the InProcess mode to improve performance under IIS. Rick Strahl has a detailed article on this. Three years have passed, and now ASP.NET Core has reached version 5.0, how the performance diffs between servers? Let's take a look together. Rick's Test Result In the original article, Rick Strahl tested the performance of ASP.NET Core 2.2 in …</description><category>.NET</category><category>Server and Tools</category><guid isPermaLink="false">BF1373A7-9DFC-4899-A722-1AB7D13FA07A</guid><pubDate>2021-02-03T04:58:31Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2021-02-03T04:58:31Z</updated></item><item><title>How to Enable Application Request Routing on Azure App Service</title><link>https://edi.wang/post/2020/11/2/how-to-enable-application-request-routing-on-azure-app-service</link><description>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. …</description><category>Microsoft Azure</category><category>Server and Tools</category><guid isPermaLink="false">08523357-1D24-4F23-8480-D5A8251C1179</guid><pubDate>2020-11-02T07:05:56Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2020-11-02T07:05:56Z</updated></item><item><title>Run ASP.NET Core Websites with Windows Server Core on Azure</title><link>https://edi.wang/post/2019/8/7/run-aspnet-core-websites-with-windows-server-core-on-azure</link><description>Microsoft Azure provides App Service that is fully managed to enable you to run websites. However, in some cases, you may still need an IaaS solution like a VM to host your website. This article will show you how to run an ASP.NET Core 2.2 web application on a Windows Server 2019 Datacenter Server Core virtual machine hosted in Azure. About Windows Server Core Windows was designed as an operating …</description><category>Microsoft Azure</category><category>Server and Tools</category><guid isPermaLink="false">0A182D9A-42BC-42AB-8683-35E0884776AE</guid><pubDate>2019-08-07T05:24:02Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2019-08-07T05:24:02Z</updated></item><item><title>Run Classic ASP on Windows 10 and Azure App Service</title><link>https://edi.wang/post/2019/7/17/run-classic-asp-on-windows-10-and-azure-app-service</link><description>ASP is an old technology of Microsoft that even before .NET was born. I have used ASP 3.0 to create my first personal blog in 2003. Nowadays, it is hard to find ASP web applications still active on the internet. But we can still bring the 1996's classic ASP back to life on today's Windows 10 and even in Azure. Some history ASP and its successor, ASP.NET are completely different. ASP uses the …</description><category>Microsoft Azure</category><category>Server and Tools</category><guid isPermaLink="false">BB08883F-915C-4C6E-8EE1-1E4A0D6FA73B</guid><pubDate>2019-07-17T12:47:55Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2019-07-17T12:47:55Z</updated></item><item><title>Path Caveat with ASP.NET Core 2.2 IIS Hosting</title><link>https://edi.wang/post/2018/12/27/path-caveat-with-aspnet-core-22-iis-hosting</link><description>ASP.NET Core 2.2 has been in place for some time, with a new feature that can use the new AspNetCoreModuleV2 and deploy with InProcess mode on IIS to dramatically improve performance. These days Azure App Service finally completed the deployment of this new version of the module, I configured my blog to the new module, and it exploded in production. Let's see why and how to solve it. If you don't …</description><category>.NET</category><category>Server and Tools</category><guid isPermaLink="false">58F062D6-EE90-4411-8E2F-4768C8D37F8F</guid><pubDate>2018-12-27T02:47:40Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2018-12-27T02:47:40Z</updated></item><item><title>Prevent Image Hotlinking in ASP.NET/Core Applications</title><link>https://edi.wang/post/2018/9/18/prevent-image-hotlink-aspnet-core</link><description>Introduction

As a website developer, we sometimes don't want the images on our own website to be directly referenced and showed on other's website. It can cause a lot network bandwidth for our datacenters in some cases, which means costing money for us to pay for the one who use our images.
For example, your website is A.com, you have an image on http://a.com/facepalm.jpg and B.com used your …</description><category>.NET</category><category>Server and Tools</category><guid isPermaLink="false">4E7AB596-A3E2-409B-995D-C9ED62129333</guid><pubDate>2018-09-18T14:25:46Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2018-09-18T14:25:46Z</updated></item><item><title>Install Linux Subsystem on Windows 10 Fall Creators Update</title><link>https://edi.wang/post/2017/11/25/install-linux-subsystem-on-windows-10-fcu</link><description>In the recent Windows 10 v1709 Fall Creators Update, the Windows subsystem for Linux has been improved a lot. Let's see how easy it is now to install Linux on Windows. 1. Enable Windows Subsystem for Linux Because the classic control panel has been hidden, now the quickest way to access Programs and Features is to run appwiz.cpl  And then check "Windows Subsystem for Linux" under "Turn Windows …</description><category>Server and Tools</category><guid isPermaLink="false">B48AD5BC-B213-44CE-B499-FDC13CD5B6BB</guid><pubDate>2017-11-25T07:59:04Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2017-11-25T07:59:04Z</updated></item><item><title>How to Redirect Old Domain URL to New Domain in IIS</title><link>https://edi.wang/post/2015/10/9/how-to-redirect-old-domain-url-to-new-domain-in-iis</link><description>When you change the domain name for your website, you are definitely going to solve the migration problem. You cannot just stop DNS on your old domain, because this will cause your indexed pages to be deleted by search engines. The correct way is to tell the search engine that you have a new domain name now, which is when the user accesses an old URL, redirect it to the new URL. Take my blog …</description><category>Server and Tools</category><guid isPermaLink="false">D64F1527-6B4A-4C2D-B0E3-8F89377B820F</guid><pubDate>2015-10-09T08:36:02Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2015-10-09T08:36:02Z</updated></item><item><title>How to Manage Azure App Service in IIS Manager (inetmgr)</title><link>https://edi.wang/post/2015/7/23/how-to-manage-azure-app-service-in-iis-manager-inetmgr</link><description>The website we created on Azure seems can be only managed in the web portal or in the Server Explorer of Visual Studio. If we would like to use IIS to manage more powerful scenarios, seems VM is the only way. But that's not true. First, the IIS comes with Windows 8.1 can't connect to Azure by default. We need to install an extension http://www.iis.net/downloads/microsoft/iis-manager After install. …</description><category>Microsoft Azure</category><category>Server and Tools</category><guid isPermaLink="false">052C996C-B053-4F73-A653-08A6BAF33F3E</guid><pubDate>2015-07-23T22:40:03Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2015-07-23T22:40:03Z</updated></item><item><title>Azure Website Showing 404 for .woff Fonts in IE</title><link>https://edi.wang/post/2015/5/19/azure-website-showing-404-for-woff-fonts-in-ie</link><description>If you are using Website on Microsoft Azure (Currently renamed to Web Apps), you will find the .woff web font is not working in IE, it returns 404. Based on my experience, this is because IIS is not configured to use the correct MimeType. However, we can not operate the IIS on Azure, there's no RDP into an Azure Web Apps backend machine. How can we do that? In fact, after IIS7, the MineType is …</description><category>.NET</category><category>Microsoft Azure</category><category>Server and Tools</category><guid isPermaLink="false">7C610694-2BE5-424B-88FF-143AEEB86E5E</guid><pubDate>2015-05-19T09:24:08Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2015-05-19T09:24:08Z</updated></item><item><title>Get Clear Password from IIS App Pool</title><link>https://edi.wang/post/2015/2/10/get-clear-password-from-iis-apppool</link><description>Sometimes, in order to get necessary permissions, we will assign domian accounts or local accounts for IIS app pool. For example, it usually happens for SharePoint deployment. However, this is not a secure way, because the password for these accounts are saved in clear text. For local accounts, the password is not readable. But if you are using domain accounts. The IIS Admin can read your …</description><category>Server and Tools</category><guid isPermaLink="false">72B844B1-BFF9-4CBA-B62F-DB43137EF531</guid><pubDate>2015-02-10T04:17:07Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2015-02-10T04:17:07Z</updated></item><item><title>Run Scheduled Tasks in ASP.NET Application</title><link>https://edi.wang/post/2014/7/18/how-to-run-schedule-jobs-in-aspnet</link><description>在ASP.NET里运行定时任务，这是个老生常谈的话题了，撇开那些用per request搞定屌丝办法，目前最好的解决办法只有2种： 1. 如果你有大微软的Azure，可以直接在网站服务中找到Jobs，自己看一下就会了 2. 如果你是屌丝，买不起Azure，就用本文介绍的WebBackgrounder搞 由于ASP.NET是服务器端Web框架，所以一般而言，一个操作的往往是只有收到客户端Request之后才能执行的，如果网站一直没人访问，没有Request进来，如何执行代码呢？定时任务就是这种坑爹场景。 还好，大微软的MVC帝、ASP.NET小王子haacked蜀黍给我们写了个 http://www.nuget.org/packages/WebBackgrounder/ 专门捣鼓这种场景。作为一个屌丝程序猿，和大牛的区别就在于“好编程，不求甚解”。所以我们不必在意它是怎么实现的，只要会用就行 …</description><category>.NET</category><category>Server and Tools</category><guid isPermaLink="false">FCA2C597-7DB8-4014-A2FE-99A6F80C0BB1</guid><pubDate>2014-07-18T02:28:05Z</pubDate><updated xmlns="http://www.w3.org/2005/Atom">2014-07-18T02:28:05Z</updated></item></channel></rss>