windows下使用net6创建自己的webapi服务
第一步,创建WebApi项目。请参考以下地址创建。
https://www.cnblogs.com/JOJJO/p/16602197.html
第二步,指定发布后的运行端口
添加appsettings.Production.json文件,录入以下内容。测试期间的端口直接在Properties\launchSettings.json文件中修改就好了。该文件可以修改很多内容
{ "Kestrel": { "Endpoints": { "Http": { "Url": "http://*:8076" } } } }
2023年9月12日补充:以前写成下面的形式。结果使用localhost可以访问。外部的电脑就无法访问了。需要改为*
"Url": "http://[::]:8076"
第三步,添加winservice支持,以注册为windows服务。参考以下文章
https://www.cnblogs.com/manupstairs/p/16083616.html
其实很简单
1.用nuget添加引用(安装)Microsoft.Extensions.Hosting.WindowsServices
2.修改Program.cs
using Microsoft.Extensions.Hosting.WindowsServices; var options = new WebApplicationOptions { Args = args, ContentRootPath = WindowsServiceHelpers.IsWindowsService() ? AppContext.BaseDirectory : default }; var builder = WebApplication.CreateBuilder(options); // Add services to the container. builder.Services.AddRazorPages(); builder.Host.UseWindowsService(); var app = builder.Build();
至此,该exe既可以做为Console程序,也可以注册为windows服务。以下就是正常的注册过程
使用管理员打开命令行窗口。录入以下命令。D:\MyWebApiApp\TestWebApi.exe是我的程序名,你需要按你的实际情况修改。注意创建时需要使用全路径。
sc create "kevinApi2" binPath="d:\MyWebApiApp\TestWebApi.exe"
安装成功的话,就可以在“服务”查看我们的程序。如果忘记写全路径,服务的可执行文件的路径是空的。没有可执行文件的服务是无法运行的。
第四步,开发与生产环境的切换。
服务发布的初期,我们需要与他人联调,希望使用Swagger的文档提示。我们可以在这个期间调整运行在开发模式。
可以在命令行运行以下命令
setx ASPNETCORE_ENVIRONMENT "Development"
运行后,需要关闭命令行,重新打开。我们也可以在“环境变量”中自己修改。以下是命令行运行后的效果。我们一般会在系统变量里加,命令是加在了用户变量。
命令行窗口打开的时候会读入环境变量,运行期间如果修改系统的环境变量,这些已打开的命令行窗口不会有效果。所以在修改后,想要生效必须重新打开一个新的命令窗口。
设置为生产环境
setx ASPNETCORE_ENVIRONMENT "Prodction"
或参考其他文章。https://www.cnblogs.com/duanweishi/p/8976161.html
本文只发布的博客园,没有允许请勿转载。