You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过C#代码程序化启停部署在Azure的控制台应用?

Azure部署C#控制台应用及程序化启停实现

一、首次部署控制台应用到Azure

对于新手,最省心的选择是部署到Azure App Service(Web Apps),步骤如下:

  • 本地准备:用dotnet publish -c Release命令编译生成发布包,输出目录默认在bin/Release/netX.X/publish(X.X对应你的.NET版本)。
  • 创建App Service:在Azure Portal中新建"Web App",选择"控制台"作为运行时堆栈,配置好资源组、应用名称、定价层(新手可选免费层测试)。
  • 部署应用:
    • 最简方式:用Visual Studio右键项目→"发布",选择Azure App Service,跟着向导完成部署,自动配置启动命令。
    • 手动部署:在Azure Portal的App Service→"部署中心",选择"上传文件",上传本地生成的发布包,然后在"配置"→"常规设置"里设置启动命令为dotnet <你的应用程序集名称>.dll。

二、用C#代码程序化控制启停

要实现代码控制App Service的启停,使用Azure官方的资源管理SDK即可:

  1. 安装依赖
    在项目中安装NuGet包:Azure.ResourceManager.AppService

  2. 配置身份验证
    创建Azure AD服务主体,给它分配网站参与者权限到你的App Service所在资源组,记录以下信息:租户ID、客户端ID、客户端密钥、订阅ID。

  3. 代码实现

using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.AppService;

// 替换为你的实际信息
var tenantId = "your-tenant-id";
var clientId = "your-client-id";
var clientSecret = "your-client-secret";
var subscriptionId = "your-subscription-id";
var resourceGroupName = "your-resource-group-name";
var appName = "your-app-service-name";

// 初始化Azure资源客户端
var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
var armClient = new ArmClient(credential, subscriptionId);

// 定位到目标App Service
var resourceGroup = armClient.GetResourceGroupResource(
    new ResourceIdentifier($"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}"));
var webApp = await resourceGroup.GetWebSites().GetAsync(appName);

// 启动应用
await webApp.StartAsync();
Console.WriteLine("应用已启动");

// 停止应用
await webApp.StopAsync();
Console.WriteLine("应用已停止");
  1. 注意事项
  • 敏感信息(如客户端密钥)不要硬编码,建议存储到Azure Key Vault,通过代码读取。
  • 如果部署到Azure Container Apps,需替换为Azure.ResourceManager.ContainerApps包,操作逻辑类似,获取ContainerApp资源后调用StartAsync()/StopAsync()。

内容的提问来源于stack exchange,提问作者sara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 05:27:34