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

 

本文只发布的博客园,没有允许请勿转载。

 

posted @ 2022-10-25 21:18  生命体验之kevin-Y  阅读(1197)  评论(0编辑  收藏  举报