{ "cells": [ { "cell_type": "markdown", "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "source": [ "ASP.NET WebApi 启动设置\n", "======================" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "项目启动,一般分为两种:开发时的调试运行与发布后的正式部署。\n", "\n", "项目配置常用的配置:\n", "1. 系统环境变量\n", "2. 项目设置:一般保存在 `项目.csproj` 文件\n", "3. 配置文件:`appsettings.json` `web.config` 及 `Properties/launchSettings.json`\n", "4. 命令行参数\n", "5. 程序启动代码:一般放在 `Program.cs` 和 `Startup.cs` 设置\n", "\n", "特别注意:本次的重点是 `发布后的正式部署` 的启动项,并且是 `IIS 子程序`的情况,API项目一般设置启动项为 在线Swagger文档 `Swagger/index.html`。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 开发调试时,设置启动项\n", "暂时省略" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 发布、部署时,设置启动项" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1、使用`环境变量`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "启动项的环境变量名与启动参数名相同,均为Urls 这适合于一台服务器只有一个WebApi实例时,比如Docker下。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "``` bat\n", ":: cmd 使用 进程内环境变量\n", "set MyEnv=MyEnvTest\n", "echo %MyEnv%\n", "```" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "dotnet_interactive": { "language": "pwsh" }, "polyglot_notebook": { "kernelName": "pwsh" }, "vscode": { "languageId": "polyglot-notebook" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "启动地址为: http://localhost:7701\r\n" ] } ], "source": [ "# PowerShell 环境变量\n", "<#\n", " 1、变量名在Window下不区分大小写,在Mac和Linux下区分大小写\n", " 2、windows中,范围有三种:系统环境变量、用户环境变量和进程(powershell执行进程)环境变量\n", " 3、三种使用方法:变量语法($Env:name)、环境提供程序和项 cmdlet、.NET System.Environment 类\n", "#>\n", "\n", "$Env:Urls='http://localhost:7701'\n", "Write-Host \"启动地址为:\"$Env:Urls\n", "\n", "# 新窗口启动WebAPI\n", "Start-Process -FilePath PowerShell.exe -ArgumentList '..\\publish\\DefaultApi\\LaunchUrlStudy.DefaultApi.exe'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2、使用启动参数" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "使用`CMD命令`或者`dotnet命令`启动WebAPI时,直接使用urls参数,是最灵活、方便的方法。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "```bat\n", ":: 打开cmd窗口中,输入以下命令\n", "start \"Start WebAPI\" /i ..\\publish\\DefaultApi\\LaunchUrlStudy.DefaultApi.exe --urls=http://localhost:7702\n", "```" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "dotnet_interactive": { "language": "pwsh" }, "polyglot_notebook": { "kernelName": "pwsh" }, "vscode": { "languageId": "polyglot-notebook" } }, "outputs": [], "source": [ "# 使用cmd\n", "Start-Process -FilePath PowerShell -ArgumentList '..\\publish\\DefaultApi\\LaunchUrlStudy.DefaultApi.exe --urls=http://localhost:7703 --launchbrowser=true'" ] } ], "metadata": { "kernelspec": { "display_name": ".NET (C#)", "language": "C#", "name": ".net-csharp" }, "language_info": { "name": "python" }, "polyglot_notebook": { "kernelInfo": { "defaultKernelName": "csharp", "items": [ { "aliases": [], "name": "csharp" } ] } } }, "nbformat": 4, "nbformat_minor": 2 }