Anduin Xue
Anduin Xue

Anduin's Tech Blog

Azure


Query Kusto database with C# and get result as List<T>.

本篇博客介绍了如何在C#中查询Kusto(Azure数据资源管理器)并获得强类型结果。首先,需要安装Kusto客户端,然后构建一个抽象类作为Kusto响应行。接下来,创建一个名为“KustoRepository”的新类,并在其构造函数中构建一个新的KustoClient。为了获取应用ID和应用密钥,需要在Azure AD中注册应用并允许其访问Kusto客户端。然后构建查询函数,该函数将查询结果转换为强类型的列表。 建议将查询函数与缓存服务、重试引擎和`Task.Run()`进行包装,以提高性能、可靠性和代码风格。最后,在需要使用查询功能时,只需创建一个具有预期响应行类型的新类,然后使用查询函数即可。 本文提供了一个详细的示例,包括创建抽象类、KustoRepository类和查询函数的实现。通过阅读本文,读者可以了解如何在C#中实现对Kusto数据库的查询,并将查询结果转换为强类型数据。这种方法可以提高代码的可读性和可维护性,同时也可以方便地扩展到其他类型的查询。请问这种方法在实际项目中的应用有哪些优势?如何根据实际需求调整查询函数以满足不同场景的需求?--GPT 4

C# .NET Core Azure .NET Kusto Azure Data Explorer KQL

Restore a deleted branch from Azure DevOps using it's SDK

本篇博客详细介绍了如何使用Azure DevOps SDK来恢复一个已删除的分支。首先,需要确保Git客户端已配置。接下来,在项目中安装Azure DevOps SDK。博客提供了用于恢复已删除分支的代码示例,其中包括了创建GitPushSearchCriteria对象、获取推送信息、创建GitRefUpdate对象以及调用UpdateRefsAsync方法来恢复分支。 在成功执行恢复分支的代码后,可以在本地运行`git fetch`命令,恢复的分支将会出现在本地仓库中。本文提供了一种简便的方法来恢复已删除的分支,这对于在意外删除分支后进行恢复非常有帮助。然而,在实际操作中是否能够顺利恢复取决于多种因素,例如分支的复杂性、项目的大小等。那么,除了使用Azure DevOps SDK,还有其他方法来恢复已删除的分支吗?如何确保在恢复分支的过程中不会引入潜在的问题?对于这些问题,希望读者能够在阅读本文的过程中思考并找到答案。--GPT 4

C# git Azure Azure DevOps SDK

Use Azure Key Vault to store connection strings for App Service.

This blog post discusses the use of Azure Key Vault to store connection strings for App Service, providing a secure way to manage sensitive information without compromising access control. Azure Key Vault is a tool designed to safeguard cryptographic keys and other secrets used by cloud apps and services. The article guides you through the process of creating a new Azure Key Vault, adding yourself as an administrator, and storing the production connection string. Once the secret is created, the reference URL is copied and wrapped using the @Microsoft.KeyVault() function. This wrapped URL is then pasted into the app service, replacing the real password. After saving the new value and restarting the app service, an identity is added to allow the app service to access the key vault. By using Azure Key Vault, you can manage your app service without touching confidential values and invite others to help manage it without revealing sensitive information, such as database passwords. This se...--GPT 4

Azure App Service Azure Security Key vault

Setup auto-renew wildcard HTTPS certificate on Azure virtual machine

本文详细介绍了如何在Azure虚拟机上设置自动续订通配符HTTPS证书。首先,需要在Azure DNS服务中创建一个新的资源组,并将域名服务器地址复制到记事本中。然后,在域名提供商处修改域名服务器的值。接下来,创建一个新的Azure虚拟机,并在其上安装IIS。为了获取证书,可以使用win-acme自动工具,它可以自动完成申请、验证和安装步骤。在此过程中,还需要创建一个新的应用程序注册,并为其分配相应的权限。最后,应用通配符HTTPS证书,并设置DNS记录以将任何子域指向服务器。完成这些步骤后,您的网站将使用HTTPS进行加密。本文提供了详细的操作步骤和截图,帮助您更轻松地完成设置过程。在完成设置后,您的在线服务将更加安全可靠。那么,自动续订通配符HTTPS证书对您的业务有何影响?如何确保在整个过程中不会出现问题?--GPT 4

Azure Azure DNS Windows Server HTTPS Win-ACME Certificate letsencrypt ACME

Fix Azure Media Player can't play video in iOS mobile devices

本篇博客讨论了Azure媒体播放器在iOS移动设备上无法播放视频的问题,并提供了一些解决方案。首先,确保播放器具有以下属性:autoplay、playsinline和controls。其次,尽量避免使用`nativeControlsForTouch`和一些高级功能,因为iOS可能不支持这些功能。此外,避免使用广告和字幕加载播放器,因为这可能导致播放器在iOS设备上无法正常工作。同时,使用正确的MIME类型,如`application/vnd.ms-sstr+xml`和`video/mp4`等,错误的MIME类型可能导致播放器加载失败。最后,不要在iOS设备上为播放器添加事件监听器,因为这可能导致播放器无法工作或加载速度极慢。通过遵循这些建议,您可以提高Azure媒体播放器在iOS设备上的性能和兼容性。那么,为什么iOS设备在加载和播放Azure媒体播放器时会出现这些问题?有哪些其他方法可以解决这些问题并提高播放器在iOS设备上的性能?--GPT 4

Azure Media Player Azure Azure Media Service

Download any Azure Media Service video or live stream with FFmpeg.

本篇博客为您提供了一个关于如何下载任意Azure媒体服务视频或直播流的教程。在开始之前,您需要安装FFmpeg,无论您使用的是Windows、Linux还是Mac OS。您可以在此处下载最新的FFmpeg:[https://ffmpeg.org/download.html](https://ffmpeg.org/download.html)。 安装完成后,准备如下命令: ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i "{0}" -c copy video.mp4 接下来,您需要获取所观看视频的Azure媒体服务平滑流URL。通常,此URL以“`manifest`”结尾。例如: https://amssamples.streaming.mediaservices.windows.net/3b970ae0-39d5-44bd-b3a3-3136143d6435/AzureMediaServicesPromo.ism/manifest 要下载此内容,请首先将其附加为m3u8格式。在URL的末尾附加以下项目: (format=m3u8-aapl-v3) 现在,URL应该如下所示: https://amssamples.streaming.mediaservices.windows.net/3b970ae0-39d5-44bd-b3a3-3136143d6435/AzureMediaServicesPromo.ism/manifest(format=m3u8-aapl-v3) 现在将URL替换为第一步中的命令`{0}`。 ffmpeg -protocol_whitelist file,http,https,tcp,tls,crypto -i "https://yourdomain/manifest(format=m3u8-aapl-v3)" -c copy video.mp4 最后,执行生成的命令。您的视频将作为文件video.mp4下载。 通过本篇博客,您将学会如何使用FFmpeg轻松下载Azure媒体服务中的视频或直播流。那么,这个方法是否适用于其他流媒体服务呢?如何优化下载速度和质量?探索这些问题,找到答案,尽情享受您的视频下载之旅...--GPT 4

Azure Media Player bash Azure Azure Media Service Download FFmpeg

EF second layer cache to enhance your SQL database performance based on Redis

本篇博客介绍了如何使用基于Redis的EF第二层缓存来提高SQL数据库性能。首先,安装`EFCoreSecondLevelCacheInterceptor`包,然后在`StartUp`类的`ConfigureServices`方法中进行相应的配置。这个缓存会在通过使用这个库的DbContext更改实体(插入、更新或删除)时更新。如果数据库通过其他方式(如存储过程或触发器)更新,缓存将变得过时。但是,如果我们的应用程序在多个实例中运行,数据库的更改可能不适用于其他实例,可能会导致许多问题。此时,我们需要使用Redis来存储缓存。 Redis是一种开源(BSD许可)的内存数据结构存储,用作数据库、缓存和消息代理。本文介绍了三种安装Redis的方法,分别是在Redis官网下载安装、在Windows Server上安装及在Azure上创建Redis缓存实例。安装完成后,使用命令安装`EasyCaching.Redis`包,并修改`StartUp`方法以连接Redis数据库并使用Redis存储Entity-Framework Core的缓存,支持扩展。 此外,还需在`appsettings.json`文件中添加正确的Redis连接信息。这样,在启动过程中,应用程序将尝试连接到Redis数据库,并使用Redis缓存数据库结果。在不修改代码的情况下,ASP.NET Core应用程序的性能得到了极大的提升。Redis值得称赞! 那么,如何在多实例应用程序中保持可扩展性呢?使用Redis作为缓存存储是否足够满足我们的需求?在实际应用中,我们可能还需要关注其他性能优化策略。--GPT 4

ASP.NET Core C# SQL Server SQL Entity Framework Core Azure Redis Caching Cache

Tips for Azure CLI script programming on bash

本篇博客文章主要介绍了如何在bash中编写Azure CLI脚本。文章提供了一系列实用的代码示例,涵盖了登录Azure、选择订阅、获取租户ID和域名等操作。此外,文章还详细介绍了如何在Azure中创建资源,例如资源组、应用程序洞察和获取连接字符串等。 文章还涉及了如何获取SQL Server数据库连接字符串、Azure SignalR连接字符串、Azure存储帐户连接字符串以及Azure App服务访问URL等信息。此外,文章还介绍了如何为函数应用和Azure应用服务设置环境变量。 阅读本文后,您将了解如何编写更高效的Azure CLI脚本以完成各种操作。文章提供的代码示例可供参考和实践,以便您更好地理解和掌握这些技巧。同时,您可能会思考如何根据自己的需求定制这些脚本以满足特定场景的需求。您还可以尝试将这些代码片段组合成一个更复杂的脚本,以实现更高级的功能。 最后,有哪些其他Azure CLI脚本技巧可以提高我们的工作效率呢?请继续阅读全文,发掘更多有趣的问题和答案。--GPT 4

bash Azure DevOps Azure CLI

Microsoft account integrated sign in via C#

本篇博客介绍了如何通过C#实现Microsoft账户的集成登录。首先,需要在Microsoft Azure Portal创建一个应用程序,并获取客户端ID和客户端密钥。接下来,通过运行`$ dotnet add package Aiursoft.XelNaga`安装所需的类库。 为了验证用户身份,我们需要将用户重定向到Microsoft登录门户。博客提供了相应的C#代码,实现了`GetBindRedirectLink()`方法。通过返回浏览器的“重定向结果”并使用`GetBindRedirectLink()`函数作为重定向URL,用户将被引导至登录页面。 用户成功登录后,将会被重定向回您设置的`RedirectUri`,并附带一个代码。通过该代码,您可以调用`GetUserDetail()`方法获取用户的详细信息。 博客还提供了`GetAccessToken()`方法,用于获取有效的访问令牌,以便下载用户个人资料。当您拥有访问令牌后,只需调用`GetUserInfo()`方法,我们将调用Graph API获取当前用户信息。 返回的用户是`MicrosoftUserDetail`实例,其中包含用户的ID、显示名称、用户主体名称和职位等信息。用户ID是唯一的,可用于识别您的用户。 最后,构建一个自定义网页,您的应用程序便可投入使用。博客还提供了源代码链接以供参考。 本篇博客详细介绍了如何通过C#实现Microsoft账户的集成登录,为开发者提供了详细的代码示例和解释。那么,如何将这种集成登录应用到其他类型的应用程序中呢?如何确保用户数据的安全性?希望本文能为您提供启示和灵感。--GPT 4

ASP.NET Core Azure Microsoft OAuth Login Authentication

Install Azure CLI on Windows 10 and use it in bash

在这篇博客中,我们将学习如何在Windows 10上安装Azure CLI并在bash中使用它。Azure命令行界面(CLI)是微软为管理Azure资源而设计的跨平台命令行体验。Azure CLI旨在易于学习和上手,同时功能强大,足以成为构建自定义自动化以使用Azure资源的绝佳工具。 Azure CLI可以在Windows,macOS和Linux环境中安装。它还可以在Docker容器和Azure Cloud Shell中运行。 在PowerShell中安装Azure CLI非常简单。只需执行以下命令: Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet' 然后,您可以直接使用它。 但是,如果在git-bash中执行`az`,它会告诉您找不到`az`。这是因为`az`是一个名为az.cmd的文件,因此bash不会将其视为bash中的命令。 那么我们如何在bash中使用az并编写az shell呢? 安装Azure CLI后,使用管理员权限打开一个新的bash实例。 然后执行以下命令: echo \"C:\\Program Files \(x86\)\\Microsoft SDKs\\Azure\\CLI2\\wbin\\az.cmd\" \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9 \${10} \${11} \${12} \${13} \${14} \${15} > "$SYSTEMROOT\az" 这将在系统根目录下创建一个名为az的新bash可执行文件。 现在尝试在bash中执行az命令。 通过这篇博客,您将了解如何在Windows 10上安装和使用Azure CLI。这将有助于您更好地管理Azure资源并构建自定义自动化。那么,您准备好在bash中使用Azure CLI了吗?--GPT 4

bash Azure Azure CLI PowerShell

Publish app from Azure DevOps to non-global Azure like Azure CN

本篇博客讲述了如何使用Azure DevOps将编译完成的应用发布到非Azure Global环境,例如Azure CN。虽然在Azure全球环境中发布应用非常简单,但在某些情况下,客户可能会使用其他Azure环境,如Azure Arc、Azure政府版和Azure CN。文章详细介绍了如何在这些非全球环境中发布应用。 首先,需要创建一个新的应用注册,并允许Azure DevOps以应用的身份发布应用。然后,为新注册的应用添加一个密钥,并将应用添加到订阅级别角色,以便在订阅范围内管理资源。接下来,在Azure DevOps中添加一个新的服务连接,并选择手动配置以设置自定义的Azure环境名称。 在配置服务连接时,需要填写订阅ID、订阅名称、服务主体ID、密钥和租户ID。这些值可以在订阅详细信息标签页和Azure AD详细信息页面中找到。填写完所有必要信息后,单击验证并保存按钮。 最后,可以在管道上工作并将应用发布到此服务连接。本文通过详细的步骤和截图为读者展示了如何实现这一目标。那么,在面对非全球Azure环境时,是否还会感到困惑呢?或者这篇文章是否为您提供了一个全新的解决方案?快来阅读全文,探索更多有关Azure DevOps和非全球Azure环境的知识吧!--GPT 4

Azure App Service Azure Azure DevOps DevOps Azure CN China

Use IIS or Azure App Service as a reverse proxy

In this blog post, we explore the process of setting up a reverse proxy using IIS or Azure App Service. Reverse proxies are beneficial for hiding the origin server's identity and improving performance, security, and load balancing. Before configuring the reverse proxy, it's essential to install IIS and the necessary extensions, such as RequestRouter and Rewrite. Once installed, enable the proxy settings in the IIS management tools and create a new reverse proxy rule by configuring domain bindings and HTTPS certificates. Creating a web.config file under the site root path is crucial for adding rules, such as redirecting HTTP traffic to HTTPS and setting up the real reverse proxy logic. The blog post provides a detailed example of setting up a reverse proxy for Aiursoft.IO and a simpler example for Google.com. To further enhance security, the HSTS feature can be enabled by adding specific code to the web.config file. For deploying the reverse proxy server to Azure App Service, simply ...--GPT 4

IIS web.config Reverse Proxy Web Azure App Service Azure